15 Cookie 机制
-
总结
1、
Cookie
是服务器委托浏览器存储的一些数据,让服务器有了“记忆能力”2、响应报文 使用
Set-Cookie
字段发送key=value
形式的Cookie
值3、**请求报文 **里用
Cookie
字段发送多个Cookie
值4、为了保护
Cookie
,还要给它设置 有效期、作用域 等属性,常用的有Max-Age
、Expires
、Domain
、HttpOnly
等5、
Cookie
最基本的用途是身份识别,实现 有状态的会话 事务
Cookie 的生存周期
让 Cookie
只能在一段时间内可用,一旦超过这个期限浏览器就认为是 Cookie 失效,在存储里删除,也不会发送给服务器
Expires
:用的是绝对时间点,即deadline
Max-Age
【优先级高】:是相对时间,单位是 秒,浏览器用 收到报文的时间点 再加上Max-Age
,就可以得到失效的绝对时间
Cookie 的作用域
Domain
和 Path
指定了 Cookie
所属的域名和路径
- 浏览器在发送
Cookie
前会从URI
中提取出host
和path
部分,对比Cookie
的属性。如果不满足条件,就不会在请求头里发送Cookie
Cookie 的安全性
-
HttpOnly
:此
Cookie
只能通过浏览器HTTP
协议传输,禁止其他方式访问JS 引擎就会禁用
document.cookie
等一切相关的API
,防止了脚本攻击 -
SameSite
- 防范 跨站请求伪造(XSRF)攻击SameSite=Strict
:严格限定Cookie
不能随着跳转链接跨站发送SameSite=Lax
:允许GET/HEAD
等安全方法,但禁止 POST 跨站发送 -
Secure
:表示这个Cookie
仅能用HTTPS
协议加密传输,明文的HTTP
协议会禁止发送
Cookie 的应用
1、身份识别
2、广告跟踪