• 2.13cookie是什么 ,详解


    1、 什么是cookie?

    cookie一般保存在请求头中以一个单独的cookies字段保存

    2、 cookie的作用

    首先必须明确一点,存储cookie是浏览器提供的功能。cookie 其实是存储在浏览器中的纯文本,浏览器的安装目录下会专门有一个 cookie 文件夹来存放各个域下设置的cookie。

    当网页要发http请求时,浏览器会先检查是否有相应的cookie,有则自动添加在request header中的cookie字段中。这些是浏览器自动帮我们做的,而且每一次http请求浏览器都会自动帮我们做。这个特点很重要,因为这关系到“什么样的数据适合存储在cookie中”。

    存储在cookie中的数据,每次都会被浏览器自动放在http请求中,如果这些数据并不是每个请求都需要发给服务端的数据,浏览器这设置自动处理无疑增加了网络开销;但如果这些数据是每个请求都需要发给服务端的数据(比如身份认证信息),浏览器这设置自动处理就大大免去了重复添加操作。所以对于那设置“每次请求都要携带的信息(最典型的就是身份认证信息)”就特别适合放在cookie中,其他类型的数据就不适合了。

    但在 localStorage 出现之前,cookie被滥用当做了存储工具。什么数据都放在cookie中,即使这些数据只在页面中使用而不需要随请求传送到服务端。当然cookie标准还是做了一些限制的:每个域名下的cookie 的大小最大为4KB,每个域名下的cookie数量最多为20个(但很多浏览器厂商在具体实现时支持大于20个)。

    3、 cookie的工作过程

    在cookie中保存的内容为了安全经常需要进行加密,因为这些涉及用户的一些个人信息以及服务器的一些秘钥规则,这些数据是在登录时产生的,会一直保存,每次访问登录后页面,浏览器都会将cookie中信息发送至后台进行用户身份校验,只有校验通过才能返回正确数据,否则重定向至那些不需要进行身份校验的页面,比如登录首页。再比如某些网站下载资源需要进行身份校验,只有vip才能下载,那么在post请求时,如果没有正确的cookie数据,就会返回拒绝反馈。
  • 相关阅读:
    JDK的KeyTool和KeyStore等加密相关
    关于分布式事务的随笔[待续]
    Netty实例几则
    Disruptor快速入门
    Java获取系统环境信息
    JDK的BIO, NIO, AIO
    四种常用IO模型
    JDK的多线程与并发库
    递归转换为迭代的一种通用方式
    二叉树的java实现
  • 原文地址:https://www.cnblogs.com/y862621115/p/12372456.html
Copyright © 2020-2023  润新知