携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第24天,点击查看活动详情
“Cookie”,经常跟用户的登录态、一些用户行为记录有关,cookie主要分为两部分学习,我们今天来了解“Cookie” 与 HTTP 协议有什么关联
Cookie 由 HTTP 协议生成,也主要是供 HTTP 协议使用
“Cookie” 的生成来源于 HTTP 回应
服务器如果希望在浏览器保存 Cookie,就要在 HTTP 回应的头信息里面,放置一个Set-Cookie字段。HTTP 回应可以包含多个Set-Cookie字段,即在浏览器生成多个 Cookie
例如:
HTTP/1.0 200 OK
Content-type: text/html
Set-Cookie: yummy_cookie=choco
Set-Cookie: tasty_cookie=strawberry
除了 Cookie 的值,Set-Cookie字段还可以附加 Cookie 的属性
改变原有的“Cookie”
如果服务器想改变一个早先设置的 Cookie,必须同时满足四个条件匹配:Cookie 的key、domain、path和secure都匹配
特别注意:只要有一个属性不同,就会生成一个全新的 Cookie,而不是替换掉原来那个 Cookie
HTTP 请求:“Cookie” 的发送
浏览器向服务器发送 HTTP 请求时,每个请求都会带上相应的 “Cookie”。也就是说,把服务器早前保存在浏览器的这段信息,再发回服务器。这时要使用 HTTP 头信息的
Cookie字段
Cookie字段可以包含多个 Cookie,使用分号(;)分隔
例如:
GET /xxx_page.html HTTP/1.1
Host: www.xxx.org
Cookie: yummy_cookie=choco; tasty_cookie=strawberry
服务器收到浏览器发来的“Cookie” 时,以下两点无从得知:
- “Cookie”的各种属性(例如何时过期)
- 哪个域名设置的 “Cookie”(例如到底是一级域名设的,还是某一个二级域名设的?)
写在最后
以上习题&笔记从大佬们的论坛学习而来,特感谢大佬们的知识分享~ (学习技术知识,果然要看大佬们的技术博客,大家有好的推荐也欢迎指引我这个小白哈,感恩!)
附上学习链接,感谢这些大佬出题和解答: wangdoc.com/javascript/…