西安专业网站建设服务公司,南京怎样做网站,诸暨哪些公司可以制作网站,网络升级访问紧急页面通知网络原理— HTTP 请求“报头”(header) Cookie 是什么 HTTP报头中的Cookie#xff0c;用大白话来说#xff0c;就像你去餐厅吃饭时拿到的一张会员卡#xff1a; 初次访问 (清除该网站的所有 Cookie 后重新访问该网站#xff0c;效果相同)#xff1a; 当你第一次访问一个网… 网络原理— HTTP 请求“报头”(header) Cookie 是什么 HTTP报头中的Cookie用大白话来说就像你去餐厅吃饭时拿到的一张会员卡 初次访问 (清除该网站的所有 Cookie 后重新访问该网站效果相同) 当你第一次访问一个网站比如某购物网站服务器想记住你比如你的登录状态、购物车。但服务器没法直接在你电脑上存东西于是它说“浏览器帮我记个小纸条 吧”这个“小纸条”就是Cookie。 服务员发卡Set-Cookie 服务器通过HTTP响应的Set-Cookie头把信息塞给浏览器。比如 Set-Cookie: user_id12345; Expires周五; Secure这相当于餐厅给你一张会员卡卡上写“用户ID是12345有效期到周五且只能在本店安全通道使用”。 自动出示会员卡Cookie请求头 之后每次你再访问这个网站浏览器会自动在HTTP请求头里带上这个 Cookie像进餐厅时主动亮出会员卡。服务器一看“哦是用户12345直接显示他的购物车” Cookie能存啥 小数据 比如用户名、语言设置、浏览记录。 关键ID 比如登录后的会话ID像会员卡号服务器靠它查你的详细信息。 Cookie的安全细节 过期时间 可以是“关浏览器就失效”会话Cookie或设定具体日期比如记住登录30天。 Secure 只通过HTTPS加密连接传输防窃听。 HttpOnly 禁止JavaScript读取防XSS攻击偷Cookie。 作用范围 指定域名比如只给.example.com和路径比如/shop目录下才发送。 举个实际例子 你登录微博服务器返回Set-Cookie: session_idabc123; HttpOnly; Secure。之后你刷主页、发微博浏览器每次请求都悄悄带上 Cookie: session_idabc123。服务器通过abc123查到你是张三直接展示你的关注和私信。 注意事项 Cookie存在你电脑里别让坏人偷走比如通过恶意链接盗取会话Cookie就能冒充你。网站要合理设置Secure和HttpOnly用户也要警惕不明网站。 总结 Cookie 就是网站让你的浏览器帮忙记的小纸条下次访问该网站时自动带上让服务器认出你。它像会员卡、临时身份证是维持登录状态、记录偏好的关键工具但也要注意安全保管 Cookie 的特点 Cookie 轻量化与兼容性 文本格式 Cookie以键值对形式存储纯文本确保跨平台兼容性。 容量限制 单个Cookie大小通常不超过4KB单个域名下Cookie数量受限如50条避免过度占用资源。 Cookie 作用域控制 通过Domain和Path属性限制Cookie的生效范围 Domain 指定 Cookie 可发送的域名每个不同的域名下都可以有不同的 Cookie不同网站之间的 Cookie 并不冲突 Path 限定仅特定路径下的请求携带Cookie如/user路径 Cookie 客户端存储与自动传输 Cookie的核心设计是通过客户端浏览器存储少量数据如用户标识符 Cookie 中存储了一个字符串 这个数据可能是客户端(网页)自行通过 JS 写入的 也可能来自于服务器服务器在HTTP响应的header中通过Set-Cookie字段给浏览器返回数据 我们先打开一个浏览器搜索页面并且清空 Cookie 清空 fiddler 中的左侧 HTTP 请求/响应结果再刷新页面查看 fiddler 新抓包的请求和响应结果 我们可以看到在响应结果中显示的 Set-Cookie 的 keyvalue和浏览器中的 Cookie 相对应说明服务器通过Set-Cookie响应头设置Cookie 浏览器在后续请求中自动回传形成“请求-响应-携带”的闭环 在后续请求中Cookie 会自动附加到HTTP头部Cookie头。 cookie 的灵活性 (生命周期管理) 会话Cookie默认在浏览器关闭后失效。持久Cookie可以灵活通过Expires或Max-Age设置过期时间实现长期状态保留如“记住登录”。 清除 Cookie 的方法 或者 Cookie 的应用场景登录和用户认证 (以码云为例) (1)在码云页面上清除 Cookie 为了方便观察先清除掉之前登陆的 Cookie
在码云页面上点击 URL 左侧的图标选择 Cookie 清除 Cookie 后再次刷新页面Cookie 会重新从服务器加载回来 (2) 登陆操作 登陆请求 登陆响应 可以看到响应中包含了3个 Set-Cookie 属性. 其中我们重点关注第三个里面包含了一个 gitee-session-n 这样的属性属性值是一串很长的加密之后的信息 这个信息就是用户当前登陆的身份标识也称为令牌(token) (3) 访问其他页面 登陆成功之后此时可以看到后续访问码云的其他页面 (比如个人主页)请求中就都会带着刚才获取到的Cookie 信息 请求你中的 Cookie 字段也包含了一个 gitee-session-n 属性里面的值和刚才服务器返回的值相同 后续只要访问 gitee 这个网站就会一直带着这个令牌直到令牌过期/下次重新登陆 (4) 理解登陆过程 这个过程和去医院看病很相似 到了医院先挂号挂号时候需要提供身份证同时得到了一张就诊卡这个就诊卡(sessionId)就相当于患者的令牌 后续去各个科室进行检查诊断开药等操作都不必再出示身份证了只要凭就诊卡即可识别出当前患者的身份. 看完病了之后不想要就诊卡了就可以注销这个卡 此时患者的身份和就诊卡的关联就销毁了(类似于网站的注销操作) 又来看病可以办一张新的就诊卡此时就得到了一个新的令牌