`
crazier9527
  • 浏览: 1008738 次
  • 性别: 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的创建和读取

    在提供的压缩包文件`cookies`中,可能包含了一个接口(定义了Cookie操作的规范),一个实现类(实现了接口中的方法),以及一个测试类(用于测试接口和实现类的功能)。通过查看和运行这些代码,你可以更深入地理解...

    jsp中cookie操作

    ### JSP中的Cookie操作 在Web开发中,Cookie是一种...通过以上介绍,我们可以了解到在JSP中如何有效地利用Cookie来进行用户状态的管理和信息的持久化存储。这对于实现登录状态保持、个性化推荐等功能具有重要意义。

    COOKIE 规范COOKIE 规范

    ajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajaxajax

    c#封装的cookie操作类

    以上就是关于"C#封装的cookie操作类"的相关知识点,通过这样的封装,可以使得Web应用程序对Cookie的管理和使用更加便捷、规范,提高代码的可复用性和可维护性。在实际项目中,还可以根据需求扩展更多功能,如删除...

    cookie机制

    - **version**:Cookie使用的版本号,0代表Netscape规范,1代表W3C规范。 ### Cookie的有效期 Cookie的有效期由`maxAge`属性定义,它可以设置为一个正数、负数或零: - **正数**:表示Cookie在`maxAge`秒之后失效...

    axios携带cookie配置详解(axios+koa)

    这篇文章主要介绍了一个在使用axios发起HTTP请求时携带cookie的配置过程,特别是与Koa框架结合使用的情况。在前端使用axios发送请求时,如果不进行特殊配置,跨域请求默认是不会携带cookie的。为了使axios在跨域请求...

    cookie 详解

    - **解释**:根据Cookie规范,浏览器只会将特定域名下的Cookie发送回该域名的服务器。这意味着,当用户访问Google时,只会携带Google颁发的Cookie;同样地,访问Baidu时,只会携带Baidu颁发的Cookie。 - **安全性和...

    documentCookie的使用

    - `cookieValue`:经过`escape()`编码的Cookie的值,确保值符合URL编码规范。 - `expirationDateObj.toGMTString()`:指定Cookie的失效日期,如果省略,Cookie将在浏览器关闭后立即失效。 4. **JavaScript的`...

    Java Servlet及Cookie的使用

    Servlet遵循Java Servlet API规范,该规范定义了Servlet与Web服务器之间的接口。通过Servlet,开发者可以创建能够处理特定业务逻辑的服务器端组件,这些组件可以动态生成HTML、XML或其他任何形式的响应。 1. **...

    根据http获取cookie内容代码

    在IT行业中,网络编程是至关重要的一环,而HTTP协议作为互联网上应用最广泛的数据通信协议,扮演着核心角色。本文将深入探讨如何根据HTTP获取cookie...记得根据实际需求和安全规范进行操作,确保数据的安全和合规性。

    ISAPI 写Cookie范例

    ISAPI开发者需要理解HTTP协议,特别是关于Cookie的规范,以便正确地设置和读取Cookie。 在实际开发中,除了基本的Cookie操作,还可能需要处理其他复杂情况,如处理多个Cookie、考虑安全性(如防止跨站脚本攻击XSS)...

    js对cookie操作的封装

    要设置Cookie,可以编写一个函数,接收名称、值和过期时间作为参数,然后构建一个符合规范的字符串赋值给`document.cookie`。 ```javascript function setCookie(name, value, days) { var expires = ""; if ...

    Cookie利用神器

    在网络安全领域,Cookie被广泛用于身份验证和会话管理,但同时也可能成为攻击者的目标。...对于这款名为"Cookie Hacker"的工具,我们需要谨慎使用,确保我们的行动符合法律和道德规范,以保护用户的数据安全。

    HTTP Cookie 协议管理标准分析以及结构实现

    ### HTTP Cookie 协议管理标准分析以及结构实现 #### 基本原理及作用 Cookie是一种小型的数据存储机制,主要用于在网络应用中...开发者需要关注HTTP协议中有关Cookie的规范,并根据实际需求合理设计Cookie管理逻辑。

    老兵cookie欺骗.rar

    合法的渗透测试和安全研究应该遵守道德规范,得到适当的授权,并遵循最小伤害原则。同时,作为Web开发者,应当学习如何防止cookie欺骗,例如使用HTTPS、设置Secure和HttpOnly标志,定期更换会话ID,以及限制cookie的...

    cookie注入源码

    在ASP环境中,由于编程不规范或安全设置不当,可能导致Cookie数据未经充分验证就直接用于服务器端的处理,为攻击者提供了可乘之机。 二、工作原理 1. 正常流程:用户浏览器接收到服务器发送的Cookie,通常包含会话...

    Cookie详解[定义].pdf

    - **RFC2109**:W3C发布的第一个官方Cookie规范,但过于严格,导致一些服务器不完全遵循或使用Netscape草案。 - **RFC2965**:定义了Cookie版本2,改进了RFC2109,但实际应用并不广泛。 6. **兼容性和安全性**: ...

    00000029_bean-cookie的用法.rar

    在Java中,Bean通常指的是符合特定规范的对象,这个规范主要体现在JavaBeans和Spring Bean中。JavaBeans是一种可重用的Java组件,它遵循一定的设计模式,包括具有无参数的构造函数、属性(getters和setters)以及...

    discuz与java通过cookie共享登陆

    2. **创建共同的Cookie标准**:定义一套共同的Cookie规范,包括Cookie的名字、过期时间、安全属性等,确保两个系统都能识别和处理。 3. **在Discuz登录成功后,将登录信息编码成Cookie**:当用户在Discuz成功登录后...

    jsp Cookie版购物车

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

Global site tag (gtag.js) - Google Analytics