【Web 基础】Cookie

导读:本篇文章讲解 【Web 基础】Cookie,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com


一、Cookie 简介

Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了 辨别用户身份,进行 Session 跟踪而 储存在用户本地终端 上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。


二、Cookie 作用

HTTP 协议本身是无状态的。什么是无状态呢,即服务器无法判断用户身份。

Cookie 实际上是一小段的文本信息(key-value格式)。客户端向服务器发起请求,如果服务器需要记录该用户状态,就使用 response 向客户端浏览器颁发一个 Cookie 。客户端浏览器会把 Cookie 保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该 Cookie 一同提交给服务器。服务器检查该 Cookie,以此来 辨认用户状态

打个比方,我们去银行办理储蓄业务,第一次给你办了张银行卡,里面存放了身份证、密码、手机等个人信息。当你下次再来这个银行时,银行机器能识别你的卡,从而能够直接办理业务。


三、Cookie 是什么

Cookie 是一个保存在客户机中的简单的 文本文件 ,这个文件与特定的 Web 文档关联在一起,保存了该客户机访问这个 Web 文档时的信息,当客户机再次访问这个 Web 文档时这些信息可供该文档使用。由于 “Cookie” 具有可以保存在客户机上的神奇特性, 因此它可以帮助我们实现记录用户个人信息的功能,而这一切都不必使用复杂的 CGI 等程序。

举例来说,一个 Web 站点可能会为每一个访问者产生一个唯一的 ID,然后以 Cookie 文件的形式保存在每个用户的机器上。如果使用浏览器访问 Web,会看到所有 保存在硬盘上 的 Cookie。在这个文件夹里每一个文件都是一个由 “名/值” 对组成的文本文件,另外还有一个文件保存有所有对应的 Web 站点的信息。在这里的每个 Cookie 文件都是一个简单而又普通的文本文件。透过文件名,就可以看到是哪个 Web 站点在机器上放置了Cookie(当然站点信息在文件里也有保存)。


四、Cookie 具体内容

Cookie 是一段不超过 4KB 的小型文本数据,由一个名称(Name)、一个值(Value)和其它几个用于控制 Cookie 有效期、安全性、使用范围的 可选属性 组成。其中:

  1. Name/Value:设置 Cookie 的名称及相对应的值。对于认证 Cookie,Value 值包括 Web 服务器所提供的访问令牌。
  2. Expires 属性:设置 Cookie 的生存期。有两种存储类型的 Cookie:会话性与持久性。Expires属性缺省时,为 会话性 Cookie ,仅保存在客户端 内存 中,并在用户关闭浏览器时失效;持久性 Cookie 会保存在用户的 硬盘 中,直至生存期到或用户直接在网页中单击“注销”等按钮结束会话时才会失效。
  3. Path 属性:定义了 Web 站点上可以访问该 Cookie 的目录。
  4. Domain 属性:指定了可以访问该 Cookie 的 Web 站点或域。Cookie 机制并未遵循严格的同源策略,允许一个子域可以设置或获取其父域的 Cookie。当需要实现单点登录方案时,Cookie 的上述特性非常有用,然而也增加了 Cookie 受攻击的危险,比如攻击者可以借此发动会话定置攻击。因而,浏览器禁止在 Domain 属性中设置 .org、.com 等通用顶级域名、以及在国家及地区顶级域下注册的二级域名,以减小攻击发生的范围。
  5. Secure 属性:指定是否使用 HTTPS 安全协议发送 Cookie。使用 HTTPS 安全协议,可以保护 Cookie 在浏览器和 Web 服务器间的传输过程中不被窃取和篡改。该方法也可用于 Web 站点的身份鉴别,即在 HTTPS 的连接建立阶段,浏览器会检查 Web 网站的 SSL 证书的有效性。但是基于兼容性的原因(比如有些网站使用自签署的证书)在检测到 SSL 证书无效时,浏览器并不会立即终止用户的连接请求,而是显示安全风险信息,用户仍可以选择继续访问该站点。由于许多用户缺乏安全意识,因而仍可能连接到 Pharming 攻击所伪造的网站。
  6. HTTPOnly 属性 :用于防止客户端脚本通过 document.cookie 属性访问 Cookie ,有助于保护 Cookie 不被跨站脚本攻击窃取或篡改。但是,HTTPOnly 的应用仍存在局限性,一些浏览器可以阻止客户端脚本对 Cookie 的读操作,但允许写操作;此外大多数浏览器仍允许通过 XMLHTTP 对象读取 HTTP 响应中的 Set-Cookie 头。

五、Cookie 机制

用户第一次访问并登陆一个网站的时候,cookie的设置以及发送会经历以下4个步骤:

  1. 客户端发送一个请求到服务器
  2. 服务器发送一个 HttpResponse 响应到客户端,其中包含Set-Cookie的头部
  3. 客户端保存cookie,之后向服务器发送请求时,HttpRequest请求中会包含一个Cookie的头部
  4. 服务器返回响应数据

如下图:
在这里插入图片描述


参考链接

  1. cookie (储存在用户本地终端上的数据)
  2. 深入理解Cookie

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/118917.html

(0)
seven_的头像seven_bm

相关推荐

发表回复

登录后才能评论
半码博客——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!