【前端入门】Cookie 与 HTTP 协议密切相关

141 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 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 的keydomainpathsecure都匹配

特别注意:只要有一个属性不同,就会生成一个全新的 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/…