- 浏览: 487242 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
Source_野驴:
...
jsp静态化和伪静态化 -
zidanzzg:
很好的知识,找到了利用异或交换数值的理论支持,谢谢分享
XOR的性质和运算 -
ueseu:
<div class="quote_title ...
Cookie的组成 -
ueseu:
<div class="quote_title ...
Cookie的组成 -
liqi___123:
理解得很透彻,谢谢!!
ROLAP、MOLAP和HOLAP联机分析处理区别
Cookie的组成
下面讲解一下Cookie的组成,对HTTP不太熟悉的读者可以暂时跳过这段,等到阅读和运行一些代码后,就会有直观的理解。
Cookie在HTTP的头部Header信息中,HTTP Set-Cookie的Header格式如下:
Set-Cookie: name=value; [expires=date]; [path=path];
[domain=domainname]; [secure];
下面是在HTTP代码中一个具体的例子:
<meta http-equiv="set-cookie" content=" cookieName = cookieValue;
expires=01-Dec-2006 01:14:26 GMT; path=/" />
从上面的格式可以看出,Cookie由下面几部分组成。
(1) Name/Value对
其格式如下:
cookieName=cookieValue
Name/Value由分号分隔。一个Cookie最多有20对,每个网页最多有一个Cookie,Value的长度不超过4K。对于Value值,最好用encodeURIComponent对其编码。
(2) Domain
Domain域名也是Cookie的一部分,默认情况下,用户访问网页的域名会存放在Cookie中。如果设置了这个Cookie的域名值,那么意味着域名上的所有服务器,而不仅是你正在访问的服务器,都能访问这个Cookie,通常不要这样做。设置域名的格式如下:
domain=http://xyz.com
(3) path
path设置对于特定的服务器来说哪个目录中的网页可访问Cookie。设置path的格式是:
path = /movies
(4) Expires
设置Cookie存活的时间,默认情况下,用户关闭浏览器则Cookie自动删除,如果没有设置Cookie失效的时间,那么用户关闭浏览器时Cookie也消失。如果设置该项,就能延长Cookie的生命期。设置时间在JavaScript中用Date对象的GMT形式,格式如下:
expires = date.toGMTString()
其中date是一个Date对象。
在Java中,可以用Java API设置。
如果Cookie的时间早于目前的时间,就删除Cookie。读者在一些网站上,可能会发现网站询问你保存登录信息多长时间(当天、3个月等),很可能就是通过设置该项来实现的。
(5) Secure
取true或者false值。如果为true,那么必须通过https发送Cookie。
另篇,Cookie的格式要素及其定义:
Cookie由变量名和值组成,类似Javascript变量。其属性里既有标准的Cookie变量,也有用户自己创建的变量,属性中变量是用“变量=值”形式来保存。
根据Netscape公司的规定,Cookie格式如下:
Set-Cookie: NAME=VALUE;Expires=DATE;Path=PATH;Domain=DOMAIN_NAME;SECURE NAME=VALUE:
这是每一个Cookie均必须有的部分。NAME是该Cookie的名称,VALUE是该Cookie的值。在字符串“NAME=VALUE”中,不含分号、逗号和空格等字符。
Expires=DATE:Expires变量是一个只写变量,它确定了Cookie有效终止日期。该属性值DATE必须以特定的格式来书写:星期几,DD-MM-YY HH:MM:SS GMT,GMT表示这是格林尼治时间。反之,不以这样的格式来书写,系统将无法识别。该变量可省,如果缺省时,则Cookie的属性值不会保存在用户的硬盘中,而仅仅保存在内存当中,Cookie文件将随着浏览器的关闭而自动消失。
Domain=DOMAIN-NAME:Domain该变量是一个只写变量,它确定了哪些Internet域中的Web服务器可读取浏览器所存取的Cookie,即只有来自这个域的页面才可以使用Cookie中的信息。这项设置是可选的,如果缺省时,设置Cookie的属性值为该Web服务器的域名。
Path=PATH:Path属性定义了Web服务器上哪些路径下的页面可获取服务器设置的Cookie。一般如果用户输入的URL中的路径部分从第一个字符开始包含Path属性所定义的字符串,浏览器就认为通过检查。如果Path属性的值为“/”,则Web服务器上所有的WWW资源均可读取该Cookie。同样该项设置是可选的,如果缺省时,则Path的属性值为Web服务器传给浏览器的资源的路径名。
可以看出我们借助对Domain和Path两个变量的设置,即可有效地控制Cookie文件被访问的范围。
Secure:在Cookie中标记该变量,表明只有当浏览器和Web Server之间的通信协议为加密认证协议时,浏览器才向服务器提交相应的Cookie。当前这种协议只有一种,即为HTTPS。
Cookies以键值的方式记录会话跟踪的内容.服务器利用响应报头Set-Cookie来发送COOKIE信息.在RFC2109中定义的SET-COOKIE响应报头的格式为:
Set-Cookie: Name = Value; Comment = value; Domain = value; Max-Age = value; Path = Value;
Secure; Version = 1 * DIGIT;
Name是Cookie的名字,Value是它的值.Name=Value属性值对必须首先出现,在此之后的属性-值对可以以任何顺序出现. 在Servlet规范中,用于会话跟踪的cookie的名字必须是JSESSIONID。
Comment属性是可选的,因为Cookie可能包含其它有关用户私有的信息.这个属性允许服务器说明这个Cookie的使用,用户可以检查这个消息,然后决定是否加入或继续会话。
Domain属性也是可选的.它用来指定Cookie在哪一个域中有效.所指定的域必须以点号(.)来开始。
Max-Age属性是可选的,用于定义Cookie的生存时间,以秒为单位.如果超过了这个时间,客户端就应该丢弃这个cookie.如果指定的秒数为0,表示这个cookie应立即被丢弃。
Path属性是可选的,用于指定这个cookie在哪一个URL子集下有效。
Secure属性是必需的,它的值是一个十进制数,标识cookie依照的状态管理规范的版本。
例如:
set-cookie: uid = Linda; Max-Age=3600; Domain=.sun.org; Path=/bbs; Version=1
它表示一个名为uid,值为Linda的cookie.生存时间为3600秒,在sunxin.org域的 bbs路径下有效.在3600秒后,客户端将抛弃这个cookie. 当IE收到上面这个响应报头后,可以选择接受或拒绝这个cookie.如果ID接受了这个cookie,当浏览器下一次发送请求到hxxp://www.xxx.com/bbs路径下的资源时,同时也会发送以下的请求报头:
cookie:uid=zhangsan.
评论
Domain域名也是Cookie的一部分,默认情况下,用户访问网页的域名会存放在Cookie中。如果设置了这个Cookie的域名值,那么意味着域名上的所有服务器,而不仅是你正在访问的服务器,都能访问这个Cookie,通常不要这样做。设置域名的格式如下:
domain=http://xyz.com
矛盾?
取true或者false值。如果为true,那么必须通过https发送Cookie。
矛盾 ?
发表评论
-
http返回网页状态码查询
2013-05-18 23:29 1059当你想查询某个页面的 ... -
铱迅Web应用防护系统(WAF)介绍
2013-05-04 22:41 0产品介绍 铱迅Web应用防护系统(也称:铱迅w ... -
javascript地址栏写法
2013-05-01 11:43 12280. 前言 所谓IE地址栏 ... -
javascript单引号和双引号区别
2012-09-10 16:58 795在一个网页中的按钮,写onclick事件的处理代码,不小 ... -
超链接打开目标(target)的测试
2012-05-28 12:51 821链接的target属性决定了链接在哪边打开,它的值通常为以下五 ... -
JSP中文验证码
2012-05-14 17:18 1248以上两篇文章的内容介绍了有关JSP中产生数字验证码跟中文验证 ... -
CSS简写方法说明
2011-10-26 14:15 1027简单的说,css简写就是在等效的前提下,把多句 ... -
ZK框架简介
2011-07-21 08:08 13731、ZK框架简介 ZK框架是 ... -
使用document.domain跨域实例
2011-05-29 22:42 2015Ajax跨域一直是个比较麻烦的问题,例如:断 ... -
再谈iframe自适应高度
2011-05-18 15:56 1029转自:http://ued.koubei.com/?p=243 ... -
JavaScript修改css样式style
2011-05-18 15:26 1078用JavaScript修改网页样式一、局部改变样式分为改变 ... -
关于multipart/related;boundary=
2011-05-16 09:51 3314http协议对mime类型有详细描述,multipart/ ... -
MIME邮件格式分析及信息提取
2011-05-16 09:50 2015摘 要 MIME是目前互联网邮件普遍采用的 ... -
在网页中使用Data URI嵌入Base64编码文件
2011-05-15 21:19 4915在网页中嵌入Base64编码文件 通过这种方法可以将任何文件 ... -
SSO三种方案
2011-03-11 18:13 12731、基于domain的方案。 应用A在a.domain ... -
在网页中嵌入任意字体的解决方案
2011-01-30 17:29 4401字体使用是网页设计中不可或缺的一部分。经常地,我们希望在 ... -
面向站长和网站管理员的Web缓存加速指南
2011-01-04 16:18 822原文(英文) ... -
可缓存的动态页面设计
2010-12-24 14:21 1347什么样的页面能够比较好的被缓存服务器缓存呢?如果返回内容的HT ... -
Apache缓存系统
2010-12-22 13:52 1919Apache 从2.0开始就 ... -
使用htmlfile隐藏IE浏览器正在打开网页状态的代码
2010-12-20 16:30 2267一般情况下,采用长连接,能持续的在客户端显示信息。 比如 ...
相关推荐
读取Cookie则相对简单,因为`document.cookie`返回的是所有Cookie组成的字符串,我们需要将其拆分并解析。这里有一个读取Cookie的函数: ```javascript function getCookie(name) { var cookieArr = document....
例如,`document.cookie`返回的是所有Cookie组成的字符串,需要解析这个字符串来获取单个Cookie的信息。 - **浏览器开发者工具**:大多数现代浏览器都内置了开发者工具,其中的“网络”或“资源”面板可以查看HTTP...
1. 获取Cookie:使用`document.cookie`属性,但返回的是所有Cookie组成的字符串,需要通过解析来获取特定Cookie。例如: ```javascript function getCookie(name) { var cookies = document.cookie.split('; '); ...
由于`document.cookie`返回的是所有Cookie组成的字符串,我们需要解析这个字符串来获取特定的Cookie值: ```javascript function getCookie(key) { const cookies = document.cookie.split(';'); for (let i = 0; ...
读取Cookie则需要解析`document.cookie`字符串,因为该属性返回的是所有Cookie组成的字符串,每条Cookie之间用分号分隔。以下是一个简单的读取函数: ```javascript function getCookie(name) { var cookieArr = ...
如果没有指定`key`,则会返回所有Cookie组成的对象: ```javascript var username = $.cookie('username'); // 返回字符串 var allCookies = $.cookie(); // 返回对象 ``` 如果Cookie中存储的是JSON数据,则可以...
读取Cookie时,由于`document.cookie`返回的是所有Cookie组成的字符串,我们需要将其分割并解析。以下是一个简单的读取函数: ```javascript function getCookie(name) { var cookieArr = document.cookie.split(...
Cookie是由服务器端设置并在客户端存储的一小段文本信息,它由一个或多个键值对组成,每个键值对之间用分号(;)隔开。当浏览器向服务器发送请求时,会自动将该域下的所有Cookie附带在HTTP头部发送回去。 **获取...
每个Cookie由一个名称(Name)、值(Value)、过期时间(Expires)以及域(Domain)等属性组成。域决定了Cookie可以在哪些网站上使用,而过期时间则指定了Cookie何时失效。 二、Cookie操作类设计 1. **读取Cookie**...
总结起来,Cookie在Web开发中扮演了不可或缺的角色,尽管在前后端分离的趋势下其使用频率有所下降,但仍然是理解Web交互和用户状态管理的重要组成部分。通过“Cookie学习练习记录”这样的实践项目,开发者可以更好地...
- **读取Cookie**:同样通过`document.cookie`,但需要注意的是,它返回的是所有Cookie组成的一个字符串,需要通过分割字符串的方式来解析。 - **修改和删除Cookie**:修改Cookie通常需要重新创建一个包含新值的...
1. **Cookie的结构**:Cookie 由名称、值和一系列可选属性组成。这些属性包括过期时间、路径、域、安全标志等。 2. **生命周期**:Cookie 可以被设置为永久或临时。永久 Cookie 即使关闭浏览器后也会保留,而临时 ...
cookie组成 cookie由以下几部分组成: domain,cookie所属的域名。浏览器发送cookie时,会检查cookie所属的域名,相符才会发送。浏览器会将tlanyan.me域下的cookie发送到www.tlanyan.me或者dev.tlanyan.me的页面请求...
本文将深入探讨Cookie的基本概念、组成部分、操作方法以及相关注意事项。 1. **Cookie的基本概念** Cookie是由Web服务器发送到用户浏览器并存储在本地的一小段文本信息,当用户再次向同一Web服务器发送请求时,...
每个Cookie由名称(cookieName)和值(cookieValue)组成,用等号分隔,如`cookieName=cookieValue`。多个Cookie之间使用分号加空格(`; `)分隔。每个Cookie还有其生命周期,即失效日期,超过该日期则会被浏览器...
.NET框架中的Cookie操作是Web开发中的重要组成部分,用于在客户端和服务器之间传递状态信息。Cookie是一种小型文本文件,由服务器发送到用户的浏览器,并由浏览器在后续请求时返回给服务器。在C#中,处理Cookie主要...
每个Cookie由多个键值对组成,每个键值对之间用分号或逗号隔开。 二、创建Cookie 在JavaScript中,我们通常使用`document.cookie`来创建Cookie。以下是一个创建Cookie的示例: ```javascript function setCookie...
**主要组成部分**: - **名称与值**: 存储特定的信息,例如用户名。 - **过期时间**: 指定Cookie的有效期限,如果没有指定,则默认为会话Cookie(即浏览器关闭后删除)。 - **路径**: 指定哪些路径下的请求将会携带该...
1. **Cookie的基本结构**:Cookie由名称、值、过期时间、路径、域等属性组成。每个Cookie都是一个键值对,服务器通过HTTP头将Cookie发送给客户端,客户端则会在后续的请求中自动携带这些Cookie回发。 2. **创建...
1. **定义**:Cookie是由服务器发送到用户浏览器并保存在本地的一小块数据,由一个名称、一个值、一个过期时间、一个路径、一个域和安全属性组成。 2. **类型**:有两种类型的Cookie,Session Cookie和Persistent ...