`
crazier9527
  • 浏览: 994767 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Cookie的规范介绍

阅读更多

Cookie的规范介绍

目前有以下几种Cookie规范:

  • Netscape cookie草案:是最早的cookie规范,基于rfc2109。尽管这个规范与rc2109有较大的差别,但是很多服务器都与之兼容。
  • rfc2109, 是w3c发布的第一个官方cookie规范。理论上讲,所有的服务器在处理cookie(版本1)时,都要遵循此规范。遗憾的是,这个规范太严格了,以致很多服务器不正确的实施了该规范或仍在使用Netscape规范。
  • rfc2965规范定义了cookie版本2,并说明了cookie版本1的不足。

rfc2965规范的使用,目前并不多。rfc2109规范相应要严格得多,在实际应用上,并不是所有的浏览器和Web服务器都严格遵守。因此相比较而言,Netscape cookie草案倒是一个比较简洁和被广泛支持的Cookie规范,因此我们在这里以Netscape cookie草案为基础进行讨论,对于其他两种规范,我们的讨论和代码具有相同的意义。关于Netscape cookie草案的细节,大家可以参照Netscape官方站点,这里我们列举一些和我们讨论有关的内容。

根据Netscape cookie草案的描述,Cookie 是Web 服务器向用户的浏览器发送的一段ASCII码文本。一旦收到Cookie,浏览器会把Cookie的信息片断以"名/值"对(name-value pairs)的形式储存保存在本地。这以后,每当向同一个Web 服务器请求一个新的文档时,Web 浏览器都会发送之站点以前存储在本地的Cookie。创建Cookie的最初目的是想让Web服务器能够通过多个HTTP请求追踪客户。有些复杂的网络应用需要在不同的网页之间保持一致,它们需要这种会话状态的保持能力。

浏览器与Web服务器通过HTTP协议进行通讯,而Cookie就是保存在HTTP协议的请求或者应答头部(在HTTP协议中,数据包括两部分,一部分是头部,由一些名值对构成,用来描述要被传输数据的一些信息。一部分是主体(body),是真正的数据(如HTML页面等))进行传送的。

在HTML文档被发送之前,Web服务器通过传送HTTP 包头中的Set-Cookie 消息把一个cookie 发送到用户的浏览器中。下面是一个遵循Netscape cookie草案的完整的Set-Cookie 头:

 

Set-Cookie:customer=huangxp; path=/foo; domain=.ibm.com; 
expires= Wednesday, 19-OCT-05 23:12:40 GMT; [secure]

 

Set-Cookie的每个属性解释如下:

  • Customer=huangxp 一个"名称=值"对,把名称customer设置为值"huangxp",这个属性在Cookie中必须有。
  • path=/foo 控制哪些访问能够触发cookie 的发送。如果没有指定path,cookie 会在所有对此站点的HTTP 传送时发送。如果path=/directory,只有访问/directory 下面的网页时,cookie才被发送。在这个例子中,用户在访问目录/foo下的内容时,浏览器将发送此cookie。如果指定了path,但是path与当前访问的url不符,则此cookie将被忽略。
  • domain=.ibm.com 指定cookie被发送到哪台计算机上。正常情况下,cookie只被送回最初向用户发送cookie 的计算机。在这个例子中,cookie 会被发送到任何在.ibm.com域中的主机。如果domain 被设为空,domain 就被设置为和提供cookie 的Web 服务器相同。如果domain不为空,并且它的值又和提供cookie的Web服务器域名不符,这个Cookie将被忽略。
  • expires= Wednesday, 19-OCT-05 23:12:40 GMT 指定cookie 失效的时间。如果没有指定失效时间,这个cookie 就不会被写入计算机的硬盘上,并且只持续到这次会话结束。
  • secure 如果secure 这个词被作为Set-Cookie 头的一部分,那么cookie 只能通过安全通道传输(目前即SSL通道)。否则,浏览器将忽略此Cookie。

一旦浏览器接收了cookie,这个cookie和对远端Web服务器的连续请求将一起被浏览器发送。例如 前一个cookie 被存入浏览器并且浏览器试图请求 URL http://www.ibm.com/foo/index.html 时,下面的HTTP 包头就被发送到远端的Web服务器。

GET /foo/index.html HTTP/1.0
Cookie:customer=huangxp

分享到:
评论

相关推荐

    COOKIE 规范COOKIE 规范

    ajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajax

    jsp Cookie版购物车

    如题,jsp Cookie购物车。...这次没有书写详细的使用讲解,并且没有注意编码规范,以及mvc之类的问题,网友下载时不要做过多评论。。。 谢谢 建议在 Firefox下用 Firebug设断点,走流程了解cookie存储信息的全过程.

    好好了解一下Cookie(强烈推荐)

    目前最新的规范是RFC 6265,它是一个由浏览器服务器共同协作实现的规范。 Cookie的处理分为: 服务器像客户端发送cookie 浏览器将cookie保存 之后每次http请求浏览器都会将cookie发送给服务器端 服务器端的发送...

    安全开发规范手册.docx

    3.5.3. Cookie安全设置 13 3.5.4. 防止CSRF攻击 13 3.5.5. 会话有效期 14 3.5.6. 会话注销 14 3.6. 访问控制 14 3.6.1. 跨权访问 14 3.6.2. 控制方法 14 3.6.3. 控制管理 14 3.6.4. 接口管理 15 3.6.5. 权限变更 15 ...

    Javascript 对cookie操作详解及实例

    定义于RFC2109和2965都已废弃,最新取代的规范是RFC6265。 cookie的作用 服务器可以利用Cookie包含信息的任意性来筛选经常性维护这些信息,以判断在HTTP传输中的状态。Cookie最典型的英语是判断注册用户是否已经登录...

    cookie在javascript中的使用技巧以及隐私在服务器端的设置

    读取cookie字符串方法: 代码如下: alert([removed])...一个cookie字符串最长为4k,超出个数限制或长度限制时将返回空值, cookie 个数超出限制时,会造成另外一些 cookie 丢失,按规范,

    cookieconsent:用Vanilla JS编写的简单的跨浏览器Cookie同意插件

    Cookie同意 一个轻量级且符合gdpr规范的Cookie同意插件,以纯JavaScript编写。 一种“多合一”解决方案,它还允许您在其中编写Cookie策略,而无需专门的页面。 :police_car_light: 警告:此v2版本与以前的版本不兼容...

    rails-session_cookie:一个用于获取原始Rails会话Cookie的机架应用

    快速,松散耦合的请求有关经过Cookie验证的应用程序的规范。 为什么 可能,您可能已经看到了很多像这样的代码: # config/initializers/session_store.rb Rails . application . config . session_store :cookie_...

    Flask框架的学习——12—(cookie和session、Flask上下文、常用的钩子函数、Restful API规范、Flask-Restful插件、参数解析、 输出字段、)

    1、cookie和session cookie:在网站中,http请求是无状态的。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。cookie的出现就是为了解决这个问题,第一次登录后...

    PHP软件安全编码规范V2.4.docx

    2.3 敏感信息(如PASSWORD/银行帐号等)不要依赖COOKIE,SESSION,最好读表,并尽量缓存读表数据 8 2.3.1 说明 8 2.3.2 应对 9 2.3.3 举例 9 2.4 注意对网站根目录及下面所有子目录及文件的权限控制与保护,不要让配置...

    asp.net关于Cookie跨域(域名)的问题

    在Cookie规范上说,一个cookie只能用于一个域名,不能够发给其它的域名。因此,如果在浏览器中对一个域名设置了一个cookie,这个cookie对于其它的域名将无效。如果你想让你的用户从你的站点中的其中一个进行登录,...

    HttpHelper.cs(httpwebrequest访问网站助手,保存cookie,模拟登录,上传,下载)

    HttpHelper.cs(httpwebrequest访问网站助手) 1.提供比较全面的网站表单提交,上传下载等功能。 2.能够保存cookie,实现网站操作需要...4.代码规范易懂,使用方便。 如有不明白的地方,请联系QQ:271853927,有问必答。

    对比分析php中Cookie与Session的异同

    IETF RFC 2965 HTTP State Management Mechanism 是通用cookie规范。网络服务器用HTTP头向客户端发送cookies,在客户终端,浏览器解析这些cookies并将它们保存为一个本地文件,它会自动将同一服务器的任何请求缚上...

    不要在cookie中使用特殊字符的原因分析

    参数name需要遵循规范RFC2109,也就是说name参数只能包含字母或者数字,不能包含逗号、分号、空格及美元符号。cookie的name属性设置之后不能被修改。

    cookie-stand-admin

    具有与规范匹配的标头组件。 有一个 包含一个占位符组件,该占位符组件显示最后创建的Cookie Stand的JSON字符串。 有一个 符合规格的组件。 使用TailwindCSS实用程序类的样式应用程序。 实施须知 npx create-next...

    Cookie Fucker-crx插件

    语言:English 删除所有cookie警告。 光和开放性。 厌倦了饼干警告? 这个延伸删除了所有这些!... 了解有关一般数据保护规范(GDPR)的更多信息: https://en.wikipedia.org/wiki/general_data_protection_regulation

    scrapy爬虫cookie池设计.zip

    爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续...然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。

    常见的浏览器存储方式(cookie、localStorage、sessionStorage)

    Cookie基于HTTP规范,用来识别用户。 Cookie是服务器发送到浏览器的一小段数据,会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。 Cookie诞生之初的作用就是解决HTTP的无状态请求,用来记录一些用户...

    PHP PHP5.0

    PHP语言元素以及结构 编程规范、PHP语言变量、数据类型、类型转换、运算优先顺序 实际样例(8个) 3 中级篇 PHP流程控制 顺序结构 分支结构 循环结构 实际样例(13个) 3 PHP字符以及字符处理 字符处理 字符处理...

    LocalStorage记住用户和密码功能

    随着HTML5规范的普及,我们不再用cookie来实现记住密码,通常会用的LocalStorage及本地缓存。  对于Cookie来说它只有一个[removed]这一个API可以使用,不管是读取Cookie还是存储Cookie你都只能使用它  然而...

Global site tag (gtag.js) - Google Analytics