Cookie

HTTP 协议是无状态的,目的是减少 CPU 内存消耗,让 HTTP 协议尽可能简单,能够处理大量事务。
HTTP/1.1 引入 Cookie 来保存状态信息。

Cookie 是服务器发送给客户端的数据,该数据会被保存在浏览器中。
在下一次发送请求时,通过 Cookie 让服务器识别出客户端,从而实现保持登录状态等功能。

1. 创建过程

服务器响应报文包含 Set-Cookie 字段,客户端解析为 Cookie 保存到浏览器。
客户端下次请求时,请求报文中包含 Cookie 字段。

注:
Cookie,Set-Cookie 和 Content-Disposition 等是RFC中定义的首部字段;
而请求,响应,通用,实体字段是 HTTP/1.1 首部字段。

2. Set-Cookie 值
属性 说明
name=值 赋予 Cookie 的名称和其值(必需项)
expires=日期 Cookie 的有效期(若不明确指定则默认为浏览器关闭前为止)
domain=域名 作为 Cookie 适用对象的域名(若不指定则默认为创建 Cookie 的服务器的域名)
path=路径 将服务器上的文件目录作为 Cookie 的适用对象(若不指定则默认为文档所在的文件目录)
Secure 仅在 HTTPS 安全通信时才会发送 Cookie
HttpOnly 加以限制,使 Cookie 不能被 JavaScript 脚本访问
3. Session 与 Cookie

Session 存在于服务器,Cookie 存在于客户端。
每个 Session 有一个 Session ID,用来唯一标识服务器上的某个 Session。
Cookie 中有一个键值对——「sid: Session ID」。

4. 浏览器禁用 Cookie

对 URL 进行重写,在 URL 后面加上 sid=xxx 。

5. 实现用户名和密码的自动填写

网站脚本从浏览器中的 Cookie 读取用户名和密码,从而实现自动填写。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • HTTP cookie(也称为web cookie,网络cookie,浏览器cookie或者简称cookie)是网...
    留七七阅读 18,068评论 2 71
  • 作者:晚晴幽草轩www.jeffjade.com/2016/10/31/115-summary-of-cookie...
    饥人谷_Dylan阅读 1,232评论 0 51
  • 背景在HTTP协议的定义中,采用了一种机制来记录客户端和服务器端交互的信息,这种机制被称为cookie,cooki...
    时芥蓝阅读 2,381评论 1 17
  • cookie cookie的起源 早期web刚开始出现复杂的应用程序时,产生了对于能够直接在客户端上存储用户信息能...
    zenggo阅读 3,890评论 1 52
  • 宣讲会上人山人海,人头攒动,人满为患,讲台上的宣讲人则口吐莲花,口若悬河,口喷泡沫,像是动物园的猴子一样被瞻...
    zhcz阅读 331评论 0 0