小饼干Cookie的大魅力
- 小饼干Cookie的大魅力 推荐度:
- 相关推荐
小饼干Cookie的大魅力
小饼干Cookie的大魅力
- 一、Cookie叙述
- 1.1 观察Cookie在HTTP数据包中的交互
- 二、Cookie有哪些属性
- 三、Cookie的应用场景
- 3.1 HTTP会话状态保持
- 3.2 基于Cookie的SSO单点登录
- 3.3 跟踪分析用户行为
- 四、Cookie的安全问题探讨
早期互联网只是用于简单的页面浏览,并没有交互,服务器也无法知道不同的请求是否来自同一个浏览器,不知道某用户上一次做了什么。每次请求都是相互完全独立的,这也是 HTTP 协议无状态特征的表现。这种缺陷显然无法满足交互式 Web 发展的需求,Cookie 作为一种解决这一问题的方案,被当时最强大的网景浏览器公司提出。
一、Cookie叙述
Cookie 可以理解成浏览器的身份证。不同站点会根据实际情况,发放一个唯一的身份证或不发放。当再次访问相同站点时,按照约定要带上这个身份证来享受部分特权。如果身份证丢了,那就要重新登记办理。
Cookie 信息是由客户端浏览器自身维护的。不同的浏览器有不同的客户端本地存储方式,Chrome 和 Firefox 使用 SQLite 存储,IE 使用的是文本格式。Cookie 里面重要的 key&value 都是被浏览器加密存放的,只有通过给定的 API 方式才能获取存入的原始数据。默认情况下,Cookie 信息会随着浏览器进程的结束而从内存中销毁,如果由于某些需求,服务器端设置了 Cookie 的存活时间,那么这个 Cookie 就会以某种形式被存储在磁盘上,在有效存活期内不会被清理,可以被重复使用并更新其生命周期。
1.1 观察Cookie在HTTP数据包中的交互
这里以 /
站点为例,说明 Cookie 在 HTTP 协议包里是如何传输的。
第一次请求 bbs 首页 /bbs/ 时,在请求数据包的 header 部分是没有 Cookie 信息的。这时,因为某些功能需要,站点会要求在浏览器本地存储 Cookies,如下面第一次交互请求登陆页面,本地浏览器会存储三个变量: phpbb3_lhc4d_u
, phpbb3_lhc4d_k
, phpbb3_lhc4d_sid
。在这里要重点关注 phpbb3_lhc4d_sid
这个变量,它存储的是服务器端 SessionID 的值(也可以称呼它为会话标识符)。
GET /bbs/ HTTP/1.1
Host: www.website
Upgrade-Insecure-Requests: 1
User-Agent: Mosilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Referer: /
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Connection: close
HTTP/1.1 200 OK
Date: Mon, 21 Oct 2019 03:04:44 GMT
Server: Apache
X-Powered-By: PHP/5.5.38-1~dotdeb+7.1
Set-Cookie
- 在php中调用接口以及编写接口
- CNN中卷积和池化计算公式
- 俞敏洪在北京大学2008年开学典礼上的演讲辞
- (转自林达华)深入问题本身
- Put GridView inside ScrollView
- Revit 二次开发前景
- 业内人员告诉你银行测试到底做什么,怎么进银行测试.....
- 软件构造复习小结(2)——设计规约(Specification)
- ADFS 概念与基本开发介绍 (1)
- 对前途迷茫时多看看
- 网络设备流量及性能监控的实现
- Windows上CLion配置和使用教程
- Spring @Scheduled定时任务的fixedRate,fixedDelay,cron的作用和不同
- atoi和itoa(头文件stdilb.h)的C实现
- JavaScript弹出框、对话框、提示框、弹窗总结
- gets,gets
- 2022年执法资格刑侦执法考试多选题专项训练题及答案