【Linux网络加餐】《HTTP 会话保持:Cookie 与 Session 原理及实验验证》---详解

发布时间:2026/10/25 2:02:55

【Linux网络加餐】《HTTP 会话保持:Cookie 与 Session 原理及实验验证》---详解 一.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是存储在服务器端的。它们各有优缺点通常在实际应⽤中会结合使⽤以达到最佳的用户体验和安全性。
延伸阅读

更多相关文章

2026/10/25 2:02:55

2026年毕业设计相关信息

01 毕业设计学生信息基本信息 学生1 ### 学生2### 学生2 卓老师,想问您今年还有本科毕设名额吗? 我是自动化2023级本科生曾天怀(自34班),之前大二的时候上过您的信号与系统课,想要在您的指导下完成毕设。 在…

2026/10/25 1:57:55

内疚自卑-量子白骨观修炼体系|赵杰|量子白骨观

作者:赵杰清华大学硕士、微美全息云科技(NASDAQ:WIMI)董事长、微算法科技(NASDAQ:MLGO)董事长、育杰奖学金创始人沿用赵杰原创理论体系:爱子量子本体论、观测坍缩效应、四重自我否定量子纠缠、意识高熵自我攻击、意识绝对错误性、现代化量子调心白骨观,融…

2026/10/25 1:57:55

Python变量的基础类型

在学习编程语言的过程之中, 人们常常无法不去掉对变量这个概念的关注。所谓的变量, 它是用来给数据起名字的这样一种存在。你能够把具体的数值赋值到变量上面, 然后你可以在程序的其他各个地方去使用这个变量, 从而来引用之前已经赋值的那个具体数值。总而言之, 变量在整个程序…

2026/10/25 3:02:59

解码多Agent协作:构建像虚拟团队一样工作的agency-agents

去年我在做内部自动化工具的时候,第一次认真思考"agency-agents"该怎么落地。当时的需求并不复杂:给出一份杂乱的需求文档,让大模型把它拆成可执行的开发任务,再针对每个任务写出实现说明,最后整体自检一遍。…

2026/10/25 3:02:59

Python+Scikit-Learn图像识别实战:从特征工程到模型调优

图像识别这个词这几年被聊得太多,以至于很多刚入门的朋友一上来就问我:是不是得先搞个显卡集群、搭个深度网络、跑个几万张图才算入门。每次听到这种问题我都想笑,因为我手里真正跑通、真正上线过、真正在业务里稳定出结果的第一批图像识别项…

2026/10/25 3:02:59

HCCL拓扑感知调度优化分布式AI训练通信性能

1. 项目概述:HCCL拓扑感知调度的核心价值在分布式AI训练场景中,跨节点通信带宽往往是制约训练效率的关键瓶颈。华为集合通信库(HCCL)的拓扑感知调度功能,正是为解决这一痛点而生。通过智能识别服务器间的物理连接拓扑&…

2026/10/25 3:02:59

agency-agents架构:多智能体自治协作的设计与落地

1. 项目概述:这不是一个“代理”,而是一套可协作的智能体工作流 “agency-agents”这个词组最近在技术社区里频繁出现,但很多人第一反应是——这不就是“代理”(agent)吗?加个“agency”前缀,是…

2026/10/25 3:02:59

前端可视化图表组件开发全指南

1. 前端可视化图表组件概述在数据驱动的互联网时代,可视化图表已成为前端开发不可或缺的核心能力。作为一名长期奋战在一线的全栈开发者,我见证了从早期静态图表到如今动态交互式可视化的技术演进历程。现代前端图表库不仅能呈现基础柱状图、折线图&…

2026/10/25 2:57:59

技能盘点实战:从模糊自我评价到可交付能力系统

1. 从“skills”这个词说起:为什么它突然成了硬通货最近后台收到不少私信,问的都是同一类问题:简历上写满了“熟练掌握XX”“精通XX”,投出去却石沉大海;面试聊技术头头是道,一到谈薪资就被压价&#xff1b…

2026/10/25 0:02:22

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/25 0:02:23

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/25 0:02:23

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/25 0:02:22

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/25 0:02:23

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/25 0:02:23

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑