cookie到底是怎样存储数据的
来源:互联网 发布:混沌摆淘宝 编辑:程序博客网 时间:2024/05/04 14:01
cookie
随着Web应用程序的出现,也产生了对于能够直接在客户端上存储用户信息能力的要求。想法很合乎逻辑,属于某个特定用户的信息应该存在该用户的机器上。无论是登录信息、偏好设定或其他数据,Web应用提供者发现他们在找各种方式将数据存在客户端上。
HTTP Cookie,通常直接叫做cookie,最初是在客户端用于存储会话信息的。该标准要求服务器对任意HTTP请求发送Set-Cookie HTTP头作为响应的一部分,其中包含会话信息。例如,这种服务器响应的头可能如下:
HTTP/1.1 200 OK Content-type: text/html Set-Cookie: name=value
Other-header: other-header-value
这个HTTP响应设置以name为名称、以value为值的一个cookie,名称和值在传送时都必须是URL编码的。浏览器会存储这样的会话信息,并在这之后,通过为每个请求添加Cookie HTTP头将信息发送回服务器,如下所示:
GET /index.html HTTP/1.1 Cookie: name=value
Other-header: other-header-value
发送回服务器的额外信息可以用于唯一验证客户来自于发送的哪个请求。
cookie在性质上是绑定在特定的域名下的。当设定了一个cookie后,再给创建它的域名发送请求时, 都会包含这个cookie。这个限制确保了储存在cookie中的信息只能让批准的接受者访问,而无法被其他域访问。
浏览器中对于cookie的尺寸也有限制。大多数浏览器都有大约4096B(加减1)的长度限制。为了最佳的浏览器兼容性,最好将整个cookie长度限制在4095B(含4095)以内。尺寸限制影响到一个域下所有的cookie,而并非每个cookie单独限制。
如果你尝试创建超过最大尺寸限制的cookie,那么该cookie会被悄无声息地丢掉。注意,虽然一个字符通常占用一字节,但是多字节情况则有不同。
cookie的成分
cookie由浏览器保存的以下几块信息构成。
名称:一个唯一确定cookie的名称。cookie名称是不区分大小写的,所以myCookie和MyCookie被认为是同一个cookie。然而,实践中最好将cookie名称看作是区分大小写的,因为某些服务离线应用与客户端存储器会这样处理cookie。cookie的名称必须是经过URL编码的。
值:储存在cookie中的字符串值。值必须被URL编码。
域:cookie对于哪个域是有效的。所有向该域发送的请求中都会包含这个cookie信息。这个值可以包含子域(subdomain,如www.wrox.com),也可以不包含它(如.wrox.com,则对于wrox.com的所有子域都有效)。如果没有明确设定,那么这个域会被认作来自设置cookie的那个域。
路径:对于指定域中的那个路径,应该向服务器发送cookie。例如,你可以指定cookie只有从
http://www.wrox.com/books/
中才能访问,那么http://www.wrox.com
的页面就不会发送cookie信息,即使请求都是来自同一个域的。失效时间:表示cookie何时应该被删除的时间戳(也就是,何时应该停止向服务器发送这个cookie)。默认情况下,浏览器会话结束时即将所有cookie删除;不过也可以自己设置删除时间。这个值是个GMT格式的日期(Wdy,DD-Mon-YYYY HH:MM:SSGMT),用于指定应该删除cookie的准确时间。因此,cookie可在浏览器关闭后依然保存在用户的机器上。如果你设置的失效日期是个以前的时间,则cookie会被立刻删除。
安全标志:指定后,cookie只有在使用SSL连接的时候才发送到服务器。例如,cookie信息只能发送给
https://www.wrox.com
,而http://www.wrox.com
的请求则不能发送 cookie。
- cookie到底是怎样存储数据的
- cookie怎样存储数据?
- Cookie到底是干什么的?
- 前方到底是怎样的?
- Cookie注入是怎样产生的
- Cookie注入是怎样产生的
- Cookie注入是怎样产生的
- Cookie注入是怎样产生的
- Cookie注入是怎样产生的
- PHP 数据库中某个字段存储的数据是数组数据时,怎样获取并解析
- 学习LOTUSSCRIPT的思路到底是怎样的?
- try catch finally的执行顺序到底是怎样的?
- 区块链的运行机制以及原理到底是怎样的?
- iPhoneX的faceID到底是一种怎样风骚的操作?
- iPhoneX的faceID到底是一种怎样风骚的操作?
- iPhoneX的faceID到底是一种怎样风骚的操作?
- ASP.NET环境下到底是怎样的顺序呢
- IT从上层到底层是怎样的学习过程
- java网络编程
- 创建自己项目的组件API
- OpenGL渲染的基本流程
- teamviewer 实现 vpn 功能
- 不同浏览器兼容性——常用的CSS Hack技术
- cookie到底是怎样存储数据的
- WOWZA的安装及(VOD+LIVE)简单配置和VLC RTP推流
- 【git使用】Failed to connect to 127.0.0.1 port 1080: Connection refused
- (1)Hadoop 1.2.1伪分布搭建
- 中转站
- 简单的文本行编辑程序——基于栈
- qq授权登录
- 用栈来实现表达式求值
- Java笔记——控制程序流程