cookie

36 阅读1分钟

cookie实际是一小段文本(key-value格式)。

流程

  • 客户端向服务器发送请求
  • 服务器若想记录用户状态,就会发送httpResponse (包含set-cookie的头部)
  • 后续客户端再发送请求(httpRequest)时,cookie会一同提交给服务器,用于身份验证
  • 服务器返回响应数据

属性

image.png

Expires

cookie中的maxAge用来表示该属性

过期时间:

  • 正数:cookie有效时间(s秒)
  • 0: cookie销毁
  • 负数:临时cookie,关闭浏览器即会失效

修改或删除cookie

提供的cookie方法只有addCookie(Cookie cookie),所以删除就是新建一个addCookie,maxAge=0覆盖之前的

新建的Cookie,除了value、maxAge之外的属性,比如name、path、domain都必须与原来的一致才能达到修改或者删除的效果。否则,浏览器将视为两个不同的Cookie不予覆盖。

注意:

从客户端读取cookie时,包括maxAge在内的其他属性都是不可读的,也不可提交,只会提交name和value,浏览器在与后台交互时会自动筛选过期cookie,过期了的cookie就不会被携带了

cookie与域名

Cookie是不可以跨域名的,隐私安全机制禁止网站非法获取其他网站的Cookie。

Cookie的路径

path属性决定允许访问Cookie的路径。比如,设置为"/"表示允许所有路径都可以使用Cookie