对于 Cookie 你了解多少

cookie 是什么?

http 是一个不保存状态的协议,什么叫不保存状态,就是一个服务器是不清楚是不是同一个浏览器在访问他,在 cookie 之前,有另外的技术是可以解决,就是在请求中插入一个 token,然后在发送请求的时候,把这个东西带给服务器,这种方式是易出错,所以有了 cookie 的出现
在这里插入图片描述cookie 是什么,cookie 就是一种浏览器管理状态的一个文件,它有 name,也有 value,后面那些看不见的是 Domain、path 等等

cookie 原理

在这里插入图片描述
第一次访问网站的时候,浏览器发出请求,服务器响应请求后,会将 cookie 放入到响应请求中,在浏览器第二次发请求的时候,会把 cookie 带过去,服务端会辨别用户身份,当然服务器也可以修改cookie 内容。

cookie 的属性

name
这个显而易见,就是代表 cookie 的名字的意思,一个域名下绑定的 cookie,name 不能相同, 相同的 name 的值会被覆盖掉。
value
这个就是每个cookie 拥有的一个属性,它表示 cookie 的值,但是我在这里想说的不是这个, 有以下几种说法,如下:
1.cookie 的值必须被 URL 编码。
2.对 cookie 的值进行编码不是必须的,还举了原始文档中所说的,仅对三种符号必须进行编码:分号、逗号和空格。
3.由于 cookie 规定是名称/值是不允许包含分号,逗号,空格的,所以为了不给用户到来麻烦,考虑服务器的兼容性,任何存储 cookie 的数据都应该被编码。

domain

这个是指的域名,这个代表的是,cookie 绑定的域名,如果没有设置,就会自动绑定到执行语句的当前域,还有值得注意的点,统一个域名下的二级域名也是不可以交换使用 cookie 的, 比如,你设置www.baidu.com 和 image.baidu.com,依旧是不能公用的
path
path 这个属性默认是’/’,这个值匹配的是 web 的路由,举个例子:
//默认路径
www.baidu.com
//blog 路径
www.baidu.com/blog

cookie 的有效期
在这里插入图片描述

什么是有效期,就是图中的 Expires 属性,一般浏览器的 cookie 都是默认储存的,当关闭浏览器结束这个会话的时候,这个 cookie 也就会被删除,这就是上图中的——session(会话储存)。
如果你想要cookie 存在一段时间,那么你可以通过设置Expires 属性为未来的一个时间节点, Expires 这个是代表当前时间的,这个属性已经逐渐被我们下面这个主人公所取代——Max- Age
Max-Age,是以秒为单位的,Max-Age 为正数时,cookie 会在 Max-Age 秒之后,被删除,当Max-Age 为负数时,表示的是临时储存,不会生出 cookie 文件,只会存在浏览器内存中,且只会在打开的浏览器窗口或者子窗口有效,一旦浏览器关闭,cookie 就会消失,当 Max-Age 为 0 时,又会发生什么呢,删除 cookie,因为 cookie 机制本身没有设置删除cookie,失效的cookie 会被浏览器自动从内存中删除,所以,它实现的就是让 cookie 失效。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值