Cookie
Cookie
客户端会话技术,将数据保存到客户端,以后每次请求都携带Cookie数据进行访问。
Cookie 解决了什么问题
HTTP 是无状态协议:服务器单次请求/响应结束后,并不会“天然记住”客户端是谁、之前做过什么。
Cookie 的作用是让浏览器在后续请求中自动携带一段小数据,帮助服务端识别客户端状态或携带少量信息。
Cookie 的关键属性(直觉层面)
- 名称/值:键值对数据
- 作用域:Domain/Path(决定哪些请求会携带该 Cookie)
- 有效期:会话 Cookie / 持久化 Cookie(Max-Age/Expires)
- 安全属性:
- HttpOnly:JS 不能读取,降低 XSS 窃取风险
- Secure:仅 HTTPS 传输
- SameSite:限制跨站携带,缓解 CSRF
Cookie 与 Session 的关系
很多 Web 应用把登录态放在服务端 Session 中,浏览器只保存一个 Session 标识(常见是 JSESSIONID)作为 Cookie。
- 客户端保存:Cookie(标识)
- 服务端保存:Session(状态数据)