HTTP Cookie 的一些认识

HTTP Cookie 是服务器发送给客户端并保存在本地的一小块数据,下次请求会带上 Cookie 给服务器方便判断张三还是李四在使用。

因为 HTTP 是无状态的,所以说 Cookie 能提供保持用户登录状态、购物车等记录等功能。

如果有多个 Cookie 值,服务器会在响应头加上多个「Set-Cookie」,用户请求时则是用「;」隔开。

Cookie 根据生命周期可分为会话期 Cookie 和持久性 Cookie。
  • 会话期 Cookie: 浏览器关闭后就会自动删除 Cookie 数据,不过主流浏览器都支持会话恢复功能,这样就能延长 Cookie 的生命周期。

  • 持久性 Cookie: 通过属性 Expires、Max-Age 控制有效时间。

作用
  • 用户状态:保持登录状态,浏览历史、购物车、游戏分数等信息记录。

  • 广告投放:广告商会通过 Cookie 分析你的数据后推送符合你胃口的广告。

  • 用户自定义设置、换主题等。

有效期控制
  • Expires: 表示为绝对时间,可以说是截止时间,到那个时间就会过期。

  • Max-Age: 表示是相对时间,单位为秒,浏览器收到报文后才开始倒计时 Max-Age 设置的秒数。

    如果同时设置了这两个属性,Max-Age 优先级大于 Expires,浏览器会优先使用它。

作用域控制

​ Domain 和 Path 指定了 Cookie 的域名和路径。通常我们会在 Path 看到的是「/」,它意思是域名下的任何路径都允许使用。

安全性

安全无论什么时候都很重要,Cookie 有 3 个属性预防一些安全问题:HttpOnly, SameSite, Secure。

  • HttpOnly:限制浏览器只能通过 HTTP 传输数据,这样就能禁止 document.cookie 等相关的 API 使用,从而一定程度上避免脚本攻击。

  • SameSite:能防范 XSRF 攻击(跨站请求伪造),这有两个值可以设置。

    • ameSite=Strict:限制 Cookie 不能跨站传输。
    • ameSite=Lax:禁止 POST 跨站传输,但 GET/HEAD 等安全方法就可以。
  • Secure:限制只能 HTTPS 协议传输,也就是说数据会以密文形式传输。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值