http是无状态的协议,客户端和服务端建立链接后,客户端向服务端再次发送请求,服务端需要唯一识别发送请求的用户,以返回对应数据
cookie中存储了用户的信息,客户端每次发送请求都带上cookie,后端就能识别客户端身份
属性
属性名 | 描述 |
---|---|
Name | 名称 |
Value | 名称对应的值 |
Domain | ·Cookie的有效域,向该域发送请求时是否带上cookie ·只能小于等于当前域名 ·不传默认等于当前域名 |
Path | Cookie的有效路径(以/ 分隔) |
Expires | Cookie应被删除的时间戳 不设置则默认关闭页面删除 |
Max-age | Cookie过期秒数 |
Secure | 指定cookie需要通过安全Socket层连接传递,不安全的HTTP协议中不会传输此Cookie |
Size | Cookie的大小 |
HttpOnly | 避免cookie被Javascript访问 |
Priority | 优先级(Chrome中的属性) |
同一性
Name, Value, Domain都相同,才属于同一个Cookie
删除、修改Cookie时,要确保上述三个值都相同
存储
会话性cookie:不设置过期时间,则cookie保存在浏览器中,关闭客户端即失效
持久性cookie:设置过期时间,cookie保存在硬盘中(电脑的文件中,浏览器设置的缓存地址)
使用
-
服务端发送Cookie
服务端在响应报文中,使用
Set-Cookie
设置Cookie -
浏览器解析保存Cookie
可以使用
document.cookie
存取cookie注意:
document.cookie
获得的是当前页面可使用的所有cookie设置cookie时,只有name, value, domain三者都和现cookie一致时,才会修改原cookie,否则为创建新cookie
-
浏览器每次发送请求时携带Cookie