Cookie 基本工作原理 — 在无状态的 HTTP 之上记住用户
1 初次访问:生成识别码并设置 Cookie
① 浏览器初次访问网站,发送 HTTP 请求(不含 Cookie 首部)。
② 服务器检测到没有 Cookie,生成一个唯一的 Cookie 识别码(如 id=abc123),并在后端数据库中创建对应记录。
③ 服务器在 HTTP 响应报文中添加 Set-Cookie: id=abc123 首部行。
④ 浏览器收到响应后,将 Cookie 识别码存入本地的 Cookie 文件。
2 再次访问:自动携带 Cookie
⑤ 浏览器再次访问同一网站,自动从 Cookie 文件取出识别码,放入请求报文的 Cookie: id=abc123 首部行。
⑥ 服务器根据识别码从后端数据库中找到用户的历史记录和偏好。
⑦ 服务器返回为这个用户定制的个性化网页内容。
此后的每次请求,浏览器都自动携带该网站的 Cookie。服务器无需用户每次登录就能识别用户身份。
★ Cookie 工作流程总结
关键步骤
1. 初次访问:浏览器发请求(无 Cookie)→ 服务器生成识别码并存数据库 → 响应中 Set-Cookie 返回识别码 → 浏览器存 Cookie 文件。
2. 后续访问:浏览器在每次请求中自动带上 Cookie 头 → 服务器识别用户 → 返回个性化内容。
两个关键 HTTP 首部
Set-Cookie | 响应首部,服务器用来设置 Cookie |
Cookie | 请求首部,浏览器用来回传 Cookie |
Cookie 解决了什么问题
HTTP 本身是无状态协议——每个请求-响应都是独立的,服务器不记得任何历史信息。
Cookie 在无状态的 HTTP 之上建立了一种状态维护机制,使服务器能够:
• 识别回头用户
• 维护用户登录状态("记住我")
• 保存购物车内容
• 提供个性化推荐
• 跟踪用户行为