关于饼干的知识的总结

  

饼干的类型

会话饼干和持久饼干

会话饼干是一种临时Cookie,它记录了用户访问站点时的设置和偏好,当用户退出浏览器时,会话饼干就会被删除。

持久饼干的生存时间更长一些,它存储在用户的硬盘上,浏览器退出或计算机重启时他们仍然存在。

会话饼干与持久饼干之间的唯一区别就是它们的过期时间。

如果设置了丢弃参数(Cookie版1本中的参数),或者没有设置或到期者信息参数(Cookie版1本中的参数)来说明扩展的过期时间,这个饼干就是一个会话饼干。

饼干是如何工作的

饼干可以通过服务器进行设置,相当于服务器给用户贴的一个标签,用于跟踪用户的状态。

通过服务器设置的饼干信息通过响应头返回给浏览器,浏览器将响应头中的饼干信息保存在本地,当下次向服务器发送HTTP请求时,就自动将保存的这些饼干信息添加到请求头中(包含通过文档。饼干接口设置的cookie)。

下面是退出博客园登录时的响应头和请求头,响应头中有set - cookie字段,请求头中有饼干字段:

关于饼干的知识的总结

通过BOM提供的文档。饼干接口,在前端可以对饼干进行操作(增、删、改),本质上是对符合一定规律的一个字符串进行操作,这样开发人员就可以利用饼干在本地存储一些数据。当然,建议存储一些非敏感信息。

饼干的限制和组成

饼干的限制

饼干的限制主要有两条:

<李>

访问饼干时的同源限制

<李>

饼干的个数和尺寸限制

<强>同源限制

饼干在性质上是绑定在特定的域名下的。当创建了一个饼干后,再给创建它的域名发送请求时,请求头中都会包含这个饼干。这个限制确保了储存在cookie中的信息只能让批准的域访问,而无法被其他域访问。

<强>个数和尺寸限制

每个域名下可绑定的饼干的个数是有限的,不同浏览器所限制的个数不同。

浏览器对同域名下饼干个数的限制见下表:

浏览器

可绑定的饼干的个数

20 IE6

IE7 50

50 Firefox

30歌剧

Safari

没有硬性限制

铬没有硬性限制

当超过单个域名限制之后还要再设置cookie,浏览器就会清除以前设置的饼干。

浏览器中对于单个饼干的尺寸也有限制,一般限制在4 mb。尺寸限制影响到一个域名下的所有饼干,而并非每个饼干单独限制。

饼干的组成

<强>名称和值名称=值:强必填. name和价值都是字符序列,除非包含在双引号内,否则不包括分号,逗号,等号和空了对格web这类服务器可以创建任意的name=价值关联,浏览器在后继对站点的访问中会将其送会给web服务器。

<强>域,域:可选。表示该饼干对于哪个域是有效的。所有向该域发送的请求中都会包含这个饼干信息。这个值可以包含子域(如www.wrox.com,表示该cookie信息只向该域名发送),也可以不包含(如.wrox.com,则对于wrox.com的所有子域都有效)。如果没有明确规定,那么这个域会被认作来自设置该饼干的那个服务器所在的域。

<强>路径,路径:可选。通过这个字段可以为服务器上特定的文档分配饼干。如果路径字段是一个URL路径前缀,就可以附加一个饼干。例如:路径/foo与foobar和/foo/bar。html相匹配。路径/与域名中的所有内容都匹配。默认值是设置饼干时的当前目录。

<强>失效时间,到期(新版的饼干规范中是信息字段):可选。这个字段会指定一个日期字符串,用来定义饼干的实际生存期。一旦到了这个日期,就不再存储或发布这个饼干了,该饼干就会被删除。如果设置的日期是以前的时间,则饼干会被立刻删除。

<强>日期格式为格林尼治时间格式: Wdy, DD-Mon-YYYY HH: MM: SS格林尼治时间。

<强>安全标志,安全:可选。该字段不是键值对的形式,如果要指定该字段,只要在设置饼干时添加安全字符即可。设置了该字段后,该cookie只有在使用SSL连接的时候才发送到服务器,例如:指定域为www.wrox.com的饼干,在制定了安全字段后,该cookie只能发送给https://www.wrox.com,而发送给http://www.wrox.com的请求不会添加该饼干。

<强> HTTP专用,HttpOnly: 可选。该字段只能在服务端设置,表示该cookie是否能通过JS (BOM的文档。饼干接口)去访问。默认情况下HttpOnly字段为空,表示可以通过JS访问该饼干。

关于饼干的知识的总结