cookie的组成:
- key:键
- value:值
- domain:域,表达这个cookie是属于哪个网站的
- path:路径,表达这个cookie是属于该网站的哪个基路径的,就好比是同一家公司不同部门会颁发不同的出入证。比如
/news
,表示这个cookie属于/news
这个路径的。 - secure:是否使用安全传输,为true则表示只能通过https传输
- expire:过期时间,表示该cookie在什么时候过期
- httponly:布尔值,为true则表示不能通过js获取,只能通过协议传输
如果一个cookie同时满足以下条件,则这个cookie会被附带到请求中
- cookie没有过期
-
cookie中的域和这次请求的域是匹配的
- cookie是不在乎端口的,只要域匹配即可
-
cookie中的path和这次请求的path是匹配的
- 比如cookie中的path是
/news
,则可以匹配的请求路径可以是/news
、/news/detail
、/news/a/b/c
等等,但不能匹配/blogs
- 如果cookie的path是
/
,可以想象,能够匹配所有的路径
- 比如cookie中的path是
-
验证cookie的安全传输
- 如果cookie的secure属性是true,则请求协议必须是
https
,否则不会发送该cookie - 如果cookie的secure属性是false,则请求协议可以是
http
,也可以是https
- 如果cookie的secure属性是true,则请求协议必须是
如何判断cookie是否为同一个:
key,domain,path相同
也就是说,如果想要删除一个cookie,只需要保证这三者一致,然后把时间设置为之前的时间即可