首页 购物 网址 三丰软件 | 小说 美女秀 图库大全 游戏 笑话 | 下载 开发知识库 新闻 开发 图片素材
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
移动开发 架构设计 编程语言 Web前端 互联网
开发杂谈 系统运维 研发管理 数据库 云计算 Android开发资料
资讯 业界资讯 软件杂谈 编程开发 网站建设 网络观查 搜索引擎 移动应用 网站运营 网络地图
开发 移动开发 Web前端 架构设计 编程语言 互联网 数据库 系统运维 云计算 开发杂谈
[互联网] Cookies
Cookies
cookie分为会话cookie和持久cookie。
会话cookie:临时cookie,记录了用户访问站点时的设置和偏好,用户退出浏览器时,会话cookie就被删除。持久cookie:存储在硬盘上,浏览器退出,计算机重启时它们任然存在。
会话cookie和持久cookie的唯一区别就是它们的过期时间。

cookie的工作原理


用户首次访问Web站点时,Web服务器会给用户指定一个独有的cookie,这样当用户再次访问该站点时就可以识别出这个用户了。
客户端发起请求:
GET /index.html HTTP/1.0
Host: www.joes-hardware.com
服务器响应,并带上cookie信息:
HTTP/1.0 200 OK
Set-cookie: id="34294";domain="joes-hardware.com"
Content-type: text/html
Content-length: 1903
...
浏览器会记住从服务器返回的Set-cookie或Set-cookie2首部中的cookie内容,并将cookie集存储在浏览器的cookie数据库中。当客户端再次访问同一站点时,浏览器会挑中那个服务器贴到用户上的cookie,并在一个cookie请求首部中将其传回去:
GET /index.html HTTP/1.0
Host: www.joes-hardware.com
Cookie: id="34294"

浏览器的cookie


浏览器要负责存储cookie信息,并在每次访问服务器时将这些信息提供给它,不同的浏览器以不同的方式来存储cookie。
下面以Internet Explorer的cookie为例。
IE的Cookie可以通过下面的方式查看到:在IE图标点击右键,打开右键菜单,打开属性对话框,打开“常规->浏览历史记录->设置”,点击“Intenet临时文件->查看文件”,就可以打开cookie存储的目录,该目录下以“cookie:”开头的文件就是IE保存的cookie文件。
每个文件中包含了多个cookie信息,每个cookie的格式如下:
__utma
81379588.14306528498.1377831180.1418116396.1418271853.95
book.douban.com/
160
395949120
30560825
4211534380
30414064
第一行是cookie的变量名,下一行是变量的值,第三行是域和路径,剩下的行就是一些特有的数据。

站点和cookie关联


cookie中提供了属性用于将cookie匹配到不同的站点,包括域属性和路径属性。

域属性


域属性(Domain)用于控制哪些站点可以看到那个cookie,在HTTP的响应首部Set-cookie中指定:
Set-cookie: user="mary17"; domain="airtravelbargains.com"
这里的domain属性是告诉浏览器将cookie: user="mary17"发送给域".airtravelbargains.com"中的所有站点。

路径属性


路径属性允许用户将cookie与部分Web站点关联起来。
Set-cookie: pref=compact; domain="airtravelbargains.com";path=/autos/
这样浏览器只有访问域".airtravelbargains.com"中的站点,并且访问的路径中包含/autos/时才会将cookie: pref=compact;发送过去。

cookie首部


cookie规范目前有两个版本,版本0和版本1,版本1是对版本0的扩展,版本0使用的更广。

cookie版本0


服务端响应的Set-cookie一般看起来如下:
Set-cookie: name=vaule[; expires=date][; path=path][; domain=domain][; secure]
下面看每个属性的含义。
属性:NAME=VALUE
是否强制:是
描述:NAME和VALUE都是字符序列,Web服务器可以创建任意的NAME=VALUE关联,在后继对站点的访问中会将其送回给Web服务器
属性:Expires
是否强制:否
描述:cookie的有效日期,如果没有指定Expires,cookie就会在用户会话结束时过期
属性:Domain
是否强制:否
描述:见“站点和cookie关联”
属性:Path
是否强制:否
描述:见“站点和cookie关联”
属性:Secure
是否强制:否
描述:如果包含这一属性,就只有在HTTP使用SSL安全连接时才会发送cookie
客户端发送请求时,会将所有与域、路径和安全过滤器相匹配的未过期cookie都发送给这个站点:
Cookie: session-id=002-1145265-8016838; session-id-time=1007884800

cookie版本1


cookie版本1(RFC 2965)引入了Set-cookie2首部和Cookie2首部。Set-cookie2首部的属性包括:
属性:NAME=VALUE
是否强制:是
描述:NAME和VALUE都是字符序列,Web服务器可以创建任意的NAME=VALUE关联,在后继对站点的访问中会将其送回给Web服务器
属性:Version
是否强制:是
描述:值为1,表示cookie规范的版本
属性:Comment
是否强制:否
描述:用于说明服务器准备如何使用这个cookie,这个值必须采用UTF-8编码
属性:CommentURL
是否强制:否
描述:提供一个URL指针,指向详细描述了cookie的目地及策略的文档
属性:Discard
是否强制:否
描述:如果提供该属性,在客户端程序终止时将放弃这个cookie
属性:Domain
是否强制:否
描述:见“站点和cookie关联”
属性:Max-age
是否强制:否
描述:整数,设置以秒为单位的cookie生存期,当cookie的试用期超过了Max-age时,客户端就应该将这个cookie丢弃,如果Max-age值为0,则应该立即将这个cookie丢弃
属性:Path
是否强制:否
描述:见“站点和cookie关联”
属性:Port
是否强制:否
描述:一个或者多个端口,由逗号分隔(Port="80,81,8080"),表示只能向端口与端口列表中的端口相匹配的服务器提供cookie,如果值为空,则只能向当前响应服务器的端口号提供cookie
属性:Secure
是否强制:否
描述:如果包含这一属性,就只有在HTTP使用SSL安全连接时才会发送cookie
版本1的客户端会带回与传送的每个cookie相关的附加信息。客户端发起请求时,可以以Cookie2首部告知服务器自己所支持的cookie标准版本:
Cookie2: $Version="1"
如果服务器能够识别出Cookie2首部,就会在响应首部中发送Set-cookie2(而不是Set-cookie)。


 此文从网络中自动搜索生成,不代表本网站赞成被搜索网站的内容或立场    查看原文
360图书馆 软件开发资料 文字转语音 购物精选 软件下载 美食菜谱 新闻资讯 电影视频 小游戏 Chinese Culture 股票 租车
生肖星座 三丰软件 视频 开发 短信 中国文化 网文精选 搜图网 美图 阅读网 多播 租车 短信 看图 日历 万年历 2017年11日历
2017-11-18 23:52:36
 
  网站联系 软件世界网-www.sjsjw.com ©2014 蜀ICP备06016416号 三峰网旗下网站