登录
No.34核心1 条来源

Cookie

课堂投屏

一句话

Cookie 是服务器让浏览器保存的一小段数据,浏览器之后访问同一网站时会自动带上它。

大白话

Cookie 像店员贴在你袖子上的号码贴纸:下次你再进店,店员一看贴纸就知道你是几号顾客,不用重新登记。

比喻的边界

贴纸上的内容你自己看得到、也改得了,所以不能写密码这类秘密;它通常只存一个编号,真正的资料留在服务器那边。

拿去就能用

开始做

我在做,需要用 Cookie 记住。帮我写设置和读取的代码,说明过期时间、HttpOnly 和 Secure 该怎么设,再告诉我在浏览器哪里能看到它。

还差:网站功能、要记住的内容,发给 AI 前记得换掉

出错了

登录接口返回成功,但下一次请求服务器还是说我没登录,开发者工具的 Application 面板里也看不到这个 Cookie。响应头贴在下面,Cookie 的值已换成 ***。我怀疑浏览器没存下它,先帮我验证,不是就换方向。

想做深

我的前端和接口在两个不同的域名下,登录 Cookie 带不过去。帮我比较两种做法:把接口放到同一个站点下(同域名的 /api 路径或子域名),还是配置跨站 Cookie;说明各自在不同浏览器里的限制,推荐一种,先说方案和影响,等我确认再改。

别这样说 → 这样说

别这样说

登录老是掉,你改一下 Cookie。

这样说

我的网站登录后刷新页面还在,但关掉浏览器再打开就要重新登录。帮我检查登录用的 Cookie 有没有设置过期时间,先告诉我现在的设置和原因,再说怎么改。

差别:写出了具体现象和触发条件,要求先解释原因再动手。

容易误解:

误解把用户名和密码存进 Cookie,下次就能自动登录。

其实是Cookie 可能被用户看到、被脚本读取,绝不能存密码;通常只存一个服务器能识别的编号,并加上 HttpOnly 和 Secure。

展开专业理解

服务器用响应头 Set-Cookie 让浏览器保存 Cookie,之后浏览器在匹配的请求里自动带回。没设 Expires 或 Max-Age 的是会话 Cookie,何时清除由浏览器决定,恢复会话时可能一直保留。HttpOnly 让 JavaScript 读不到,Secure 只在 HTTPS 下发送,SameSite 控制跨站请求是否携带。

来源

  1. MDN:使用 HTTP Cookie 核对于 2026-09-26