【前端入门】浏览器知识之cookie基础

234 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第23天,点击查看活动详情

产品同学时常会听到前端同学说“Cookie”,经常跟用户的登录态、一些用户行为记录有关,cookie主要分为两部分学习,我们今天先来了解下“Cookie”的基础!(明天来学习“Cookie”与 HTTP 协议关联知识~)

经常听到开发同学说的“Cookie”是什么呢?

Cookie 是服务器保存在浏览器的一小段文本信息,一般大小不能超过4KB。浏览器每次向服务器发出请求,就会自动附上这段信息

Cookie 的目的是为了直接区分用户放置状态信息,主要有以下这些使用场景:

  • 对话(session)管理:保存登录状态、购物车等需要记录的信息
  • 个性化信息:保存用户的偏好(网页的字体大小、背景色等)
  • 追踪用户:记录和分析用户行为

每个“Cookie”都有一些必备的“元数据”

  • Cookie 的名字
  • Cookie 的值(真正的数据写在这里面)
  • 到期时间(超过这个时间会失效)
  • 所属域名(默认为当前域名)
  • 生效的路径(默认为当前网址)

“Cookie”会有什么效果?

举例来说,用户访问网址www.xxx.com,服务器在浏览器写入一个 Cookie。这个 Cookie 的所属域名为www.xxx.com,生效路径为根路径/

//使用`document.cookie`属性可以返回当前网页的 Cookie
document.cookie // "id=foo;key=bar"

服务器如果希望在浏览器保存 Cookie,就要在 HTTP 回应的头信息里面,放置一个Set-Cookie字段;HTTP 回应可以包含多个Set-Cookie字段,即在浏览器生成多个 Cookie

“Cookie”的属性

cookie常用的一些属性,大致距离了这些:

  • Expires属性:指定一个具体的到期时间,到了指定时间以后,浏览器就不再保留这个 Cookie
  • Max-Age属性:从现在开始Cookie存在的秒数。过了这个时间以后,浏览器就不再保留这个 Cookie。比如一年就是60 * 60 * 24 * 365
  • Domain属性:指定 Cookie 属于哪个域名。以后浏览器向服务器发送 HTTP 请求时,通过这个属性判断是否要附带某个Cookie
  • Path属性:浏览器发出 HTTP 请求时,哪些路径要附带这个Cookie。只要浏览器发现,Path属性是 HTTP 请求路径的开头一部分,就会在头信息里面带上这个Cookie
  • Secure属性:浏览器只有在加密协议 HTTPS 下,才能将这个Cookie发送到服务器
  • HttpOnly属性指定该Cookie 无法通过JavaScript脚本拿到,主要是document.cookie属性、XMLHttpRequest对象和 Request API 都拿不到该属性

写在最后

以上习题&笔记从大佬们的论坛学习而来,特感谢大佬们的知识分享~ (学习技术知识,果然要看大佬们的技术博客,大家有好的推荐也欢迎指引我这个小白哈,感恩!)

附上学习链接,感谢这些大佬出题和解答: wangdoc.com/javascript/…