原文http://blog.sina.com.cn/s/blog_70c4d9410100z3il.html
根据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 路径属性的危险 在服务器中的项目中,如果 Cookie 中的路径属性没有被正确设置,可能会泄露项目路径,导致外部攻击。例如,在某些 Web 应用程序中,如果 ...
接受单个set-cookie标头值、一组set-cookie标头值或可能具有 0 个或多个set-cookie标头的 Node.js 响应对象。 还接受一个可选的选项对象。 默认值: { decodeValues : true , // Calls dcodeURIComponent on ...
CORS 跨域 Cookie 写入场景主页面在 foo.com:3000 域下主页面 Ajax 请求 bar.com:3000 的 /set-cookie 请求,后者会在 bar.com 下写入一个 cookie主页面 Ajax 请求 bar.com:3000 的 /echo-cookie 请求,后者会将 ...
vue-resource不再维护之后,我也用起了axios,但是死活无法设置服务器发送过来的cookie 后来查询文档发现,这个是要单独配置的。 // `withCredentials` indicates whether or not cross-site Access-Control ...
"前端开源库-universal-cookie-koa"是一个专为解决这个问题而设计的库,它结合了`universal-cookie`库和`Koa`框架,以实现跨平台的cookie操作。下面将详细阐述这个库的功能、原理以及如何在实际项目中应用。 `...
在后台, set-cookie使用模块将cookie元数据序列化为字符串。 签出该项目以获取完整的选项列表。 还有一个特殊选项res ,在使用Node的set-cookie时必须将其传递。 它是一个实例,它可以来自简单的http服务器,也...
本示例将详细介绍如何在Delphi中利用IdHTTP控件进行Cookie操作。 首先,我们需要了解IdHTTP控件的基本用法。在Delphi中, Indy 是一个流行的网络通信库,IdHTTP是Indy库中的一个组件,它提供了一个简单的方式来发送...
-iOS_Set_Cookie_Bug_external_service 概括 加载项可以调用的服务,该服务将设置cookie,然后尝试在另一个页面上输出设置的cookie。 这是为了说明iOS Set-Cookie问题。 该存储库应与一起使用。 快速开始 npm ...
在压缩包文件"tiny-cookie-master"中,可能包含了源代码、示例、文档和测试等内容。源代码可以帮助我们了解库的实现细节,学习如何优雅地处理Cookie操作。示例可以快速上手,了解如何在实际项目中使用该库。文档可能...
在易语言中,“取设cookie”是网络编程中的一个重要概念,主要用于处理网页浏览过程中的数据存储与交互。 Cookie是在HTTP协议下,服务器发送到用户浏览器并保存在本地的一小块数据,它用于记录用户的浏览历史、登录...
Set-Cookie: ASPSESSIONIDCACBBBRT=IBOMFONAOJFEEBHBPIENJFFC; path=/ HTTP/1.1 200 OK Server: Microsoft-IIS/5.0 ... Set-Cookie: ASPSESSIONIDCACBBBRT=IBOMFONAOJFEEBHBPIENJFFC; path=/ ``` 在这个例子中,...
本篇文章将详细介绍如何在Express框架中使用Cookie。 #### 一、Cookie简介 Cookie是由服务器发送到客户端的一种小型文本文件,它通常用于跟踪用户的会话状态。当用户访问网站时,服务器会通过HTTP响应头Set-Cookie...
在Cookie介绍中 我们了解到Cookie是基于Set Cookie响应头和Cookie请求头工作的 服务器通过response对象的addHeader 方法将cookie发送给浏览器 然后浏览器通过Cookie请求头将cookie再送回服务器
1. **设置Cookie**:通过`Cookie.set(name, value, [options])`方法可以方便地设置一个Cookie,其中`name`是Cookie的名称,`value`是存储的值,`options`是一个可选的对象,包含过期时间、路径、域名、安全性和...
小饼干 英文 | 一个用于浏览器的小型 cookie 操作插件。...import { isEnabled , get , set , remove } from 'tiny-cookie' // No alias required, just imports. import { isCookieEnabled , getCo
例如,设置一个名为"user",值为"itcast"的Cookie,可能的Set-Cookie头部信息如下: ``` Set-Cookie: user=itcast; Path=/; ``` 在这个例子中,"Path"属性表明了Cookie的应用路径。请注意,Cookie总是以键值对的形式...
本文将详细介绍HttpOnly属性的作用,以及Java和PHP后台如何设置HttpOnly属性到浏览器的Cookie。 **HttpOnly属性详解** HttpOnly属性是Cookie的一个扩展,其主要目的是增强对XSS攻击的防护。当一个Cookie被设置为...
header("Set-Cookie: testcookie=中文; path=/; domain=.phpv.net; expires=" . gmstrftime("%A, %d-%b-%Y %H:%M:%S GMT", time() + 9600)); ``` 这段代码设置了名为`testcookie`的Cookie,并将其值设置为“中文”...
httpPost.setHeader("Cookie", "JSESSIONID=" + 存储的SessionId); HttpResponse httpResponse = httpClient.execute(httpPost); ``` 其中,`httpPost.setHeader("Cookie", "JSESSIONID=" + 存储的SessionId);` 这...