首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
【Linux网络加餐】《HTTP 会话保持:Cookie 与 Session 原理及实验验证》---详解
📅 2026/10/25 2:02:23
✍️ 爱科研究院
👁 阅读 3,247
一.HTTP 会话保持1.CookieHTTP 的特征如下简单快捷无连接无状态HTTP 本身是无状态协议协议层面不会保存客户端的历史访问信息每一次 HTTP 请求都是独立的服务器收到单次请求时默认不知道这个请求来自哪个用户、之前有没有登录、浏览过哪些页面请求和请求之间互相隔离、没有上下文关联。但我们日常上网却有 “记住登录” 的体验典型场景就是登录 CSDN 之后关掉网页、甚至重启电脑下次重新打开 CSDN 依旧保持登录状态不用重复输入账号密码。这个能力并不是 HTTP 原生自带的而是依靠Cookie来弥补无状态的缺陷。Cookie 是服务器下发给浏览器、保存在本地的一小段文本数据。流程简单来说你第一次登录 CSDN校验账号密码成功后服务器通过响应头Set-Cookie把携带身份标识的 Cookie 发给浏览器浏览器收到后按域名保存这份 Cookie可以设置过期时间有的是会话 Cookie关闭浏览器就失效有的是持久 Cookie会存到硬盘重启电脑还在之后你每次访问 CSDN 对应的域名浏览器都会自动在请求头里带上属于这个网站的 Cookie一起发给服务器服务器读取 Cookie 里面的身份凭证识别出你就是之前登录过的用户直接放行不用再次登录。我们看到的这些 cookie 数据实际都是对应的服务器方写的如果你将对应的某些cookie 删除那么此时可能就需要你重新进行登录认证了因为你删除的可能正好就是你登录时所设置的 cookie 信息。得出结论会话保持不是 HTTP 协议天然具备的特点而是浏览器为了满足用户的使用需求做了相应的工作。那它到底是怎么实现的呢用户首次提交账号密码完成登录校验后并不是浏览器直接保存用户名和密码。服务器验证信息无误后会下发 Cookie 给浏览器保存。之后用户再次访问该网站、发起 HTTP 请求时浏览器会自动把属于这个站点的 Cookie 放到请求头里一同发送给服务器。服务器通过 Cookie 里的身份标识识别用户所以在有效期内不需要重复输入账号密码登录。用来维持这种状态的技术就是 Cookie。Cookie 分为两类会话 Cookie内存 Cookie和持久 Cookie文件 Cookie。(1)引入 HTTP Cookiea.定义HTTP Cookie也叫 Web Cookie、浏览器 Cookie常直接简称 Cookie是服务器下发到用户浏览器、并保存在浏览器本地的一小段数据。后续浏览器向同一个服务器发起请求时会自动携带这份 Cookie 发送给服务端。 它的核心作用让服务端识别多次请求是否来自同一个浏览器典型场景就是维持用户登录状态、保存用户个性化偏好等。b.工作原理用户首次访问网站服务器在 HTTP 响应头中添加Set-Cookie字段把 Cookie 下发给浏览器浏览器收到 Cookie按照域名分类保存在本地后续访问同源网站发起请求时浏览器自动在 HTTP 请求头带上对应的 Cookie发给服务器。c.用途用户认证与会话管理最重要用途用户行为跟踪统计缓存用户页面偏好、主题设置等Chrome 浏览器快速查看 Cookie 地址chrome://settings/cookiese.HTTP 头部Set-CookieSet-Cookie是响应头由服务器返回给浏览器浏览器识别后保存 Cookie。 基础语法Set-Cookie: namevaluenameCookie 名称valueCookie 存储的值完整示例Set-Cookie: usernamepeter; expiresThu, 18 Dec 2024 12:00:00 UTC; path/; domain.example.com; secure; HttpOnlyf.时间格式规范时间格式必须遵守RFC 1123标准具体格式样例 Tue, 01 Jan 2030 12:34:56 GMT或者UTC(推荐) 。关于时间解释Tue: 星期⼆星期⼏的缩写,: 逗号分隔符01: ⽇期两位数表⽰Jan: ⼀⽉⽉份的缩写2030: 年份四位数12:34:56: 时间⼩时、分钟、秒GMT: 格林威治标准时间时区缩写GMT 和 UTC 小科普了解GMT格林威治标准时间基于地球自转现在已经不再作为官方标准时间UTC协调世界时基于原子钟计时精度极高是网络、计算机系统通用的标准时间。 绝大多数场景下二者数值几乎一致可以互换高精度场景优先使用 UTC。g.Set-Cookie 可选属性说明表格属性说明expiresdate设置 Cookie 过期时刻不配置则默认是会话 Cookie关浏览器失效path路径限制 Cookie 发送的路径范围默认是当前设置 Cookie 的路径path/代表全站生效domain域名指定可以接收该 Cookie 的域名带前缀.代表包含所有子域名secure只有 HTTPS 请求才会携带这个 Cookie防止在 HTTP 明文传输时被劫持HttpOnly禁止前端 JS 脚本读取该 Cookie用来防御 XSS 跨站脚本攻击h.书写注意事项多个属性之间用;分号 空格隔开Cookie 的名称和值使用连接如果 name /value 包含空格、分号、逗号这类特殊字符必须做 URL 编码。i.Cookie 生命周期配置expires到达指定时间后 Cookie 自动过期失效未配置expires属于会话 Cookie浏览器进程关闭就销毁。2内存级 Cookie 和文件级 CookieCookie 是浏览器用来存储站点相关数据的载体分为内存级 Cookie会话 Cookie和文件级 Cookie持久 Cookie。内存级 Cookie保存在浏览器内存里不会写入磁盘。一旦关闭浏览器进程这份 Cookie 就会直接销毁。下次再打开网站访问就需要重新登录。文件级 Cookie以文件形式保存在本地磁盘中带有指定过期时间。就算关闭浏览器、重启电脑只要 Cookie 还没到期访问网站时依旧有效可以保持登录状态。3Cookie 安全问题如果本地存储的 Cookie 被攻击者窃取不法分子就可以携带这份 Cookie冒充我们的身份访问对应网站这就是Cookie 劫持Cookie 被盗取。为降低风险我们可以把用户的核心登录信息存放在服务端也就是Session。服务端会为每一个登录用户生成独立的 Session 数据并分配唯一标识Session ID。服务器只把这个 Session ID 返回给浏览器浏览器再把 Session ID 存进 Cookie 中。后续每次请求浏览器自动带上 Cookie 里的 Session ID服务器拿到 Session ID去服务端查找对应的 Session 数据完成身份鉴权。这种方式下用户真实信息不会放在 Cookie 里避免敏感信息随 Cookie 泄露。安全防护还可以依靠服务端策略比如检测到异地登录时服务端主动让这个 Session ID 失效。失效之后就算攻击者拿到 Session ID 也无法使用网站会要求重新验证账号密码、短信或者人脸以此确认操作者是本人提升安全性。(4) 实验测试cookieCookie 负责在客户端存储、传递 Session IDSession 负责在服务端存放真实的用户会话数据二者配合就实现了 HTTP 无状态环境下的登录保持能力。2.Session(1)引入 HTTP Session承接上文 Cookie为后续登录验证流程做铺垫定义HTTP Session 是服务端用于跟踪用户、保存用户交互状态的机制。HTTP 本身是无状态协议每一次请求相互独立服务端无法自动识别请求归属哪个用户所以依靠 Session 在服务端侧记录用户会话信息。工作原理用户首次登录访问站点服务端为该用户生成全局唯一的Session ID服务端把 Session ID 通过Set-Cookie响应头下发给浏览器由浏览器保存在本地 Cookie 中用户后续发起请求时浏览器自动携带 Cookie 里的 Session ID服务端拿到 Session ID查询对应的会话数据完成用户身份识别Session 的实际数据一般存放在服务端内存、Redis 缓存或者数据库中。安全性Session ID 会在客户端和服务端之间传输因此同样存在被窃取劫持的风险。 和直接把用户信息放进 Cookie 相比有明显优势就算 Cookie 被盗攻击者拿到的仅仅是 Session ID用户的敏感信息本身保存在服务端不会直接泄露。 同时服务端拥有更强的管控能力例如检测到异地登录时可以主动销毁对应 Session ID使旧会话直接失效。 配套防护手段使用 HTTPS 加密传输同时给存放 SessionID 的 Cookie 设置HttpOnly、Secure属性降低被窃取的概率。超时与失效可以配置 Session 超时时间长时间无操作Session 自动过期失效支持服务端主动销毁 Session典型场景就是用户点击登出操作。用途用户身份认证与会话管理核心用途临时业务数据存储例如购物车、临时表单数据分布式场景会话共享把 Session 数据放到公共缓存 / 数据库多台服务器可以共用同一份会话信息(2实验测试cookie1.访问/login, 模拟登录2.两个浏览器访问任意的站点资源3.总结HTTP Cookie和Session都是⽤于在Web应⽤中跟踪⽤⼾状态的机制。Cookie是存储在客户端的而Session是存储在服务器端的。它们各有优缺点通常在实际应⽤中会结合使⽤以达到最佳的用户体验和安全性。
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/10/25 2:02:23
2026年毕业设计相关信息
2026/10/25 1:57:23
指令系统与寻址方式详解:从指令格式到七种寻址方式
2026/10/25 1:57:23
Python70:核心语法-函数进阶-案例2
2026/10/25 3:02:28
解码多Agent协作:构建像虚拟团队一样工作的agency-agents
2026/10/25 3:02:28
Python+Scikit-Learn图像识别实战:从特征工程到模型调优
2026/10/25 3:02:28
HCCL拓扑感知调度优化分布式AI训练通信性能
2026/10/25 3:02:28
agency-agents架构:多智能体自治协作的设计与落地
2026/10/25 3:02:28
前端可视化图表组件开发全指南
2026/10/25 2:57:28
技能管理实战:从技能囤积到结构化资产
2026/10/25 0:02:11
全国计算机二级C语言真题PDF高效刷题指南
2026/10/25 0:02:11
requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南
2026/10/25 0:02:11
递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现
2026/10/25 0:02:11
全国计算机二级C语言真题PDF高效刷题指南
2026/10/25 0:02:11
requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南
2026/10/25 0:02:11
递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现
2026/10/24 19:17:18
我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
2026/10/23 10:58:39
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026/10/23 10:58:39
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)