关于Cookie的知识的总结

  • 时间:
  • 浏览:3
  • 来源:大发5分快3APP下载_大发5分快3APP官方

日期格式为GMT格式:Wdy, DD-Mon-YYYY HH:MM:SS GMT。

80

注意:域、路径、失效时间、安全标志(secure)和HttpOnly字段详细都是服务器给浏览器的指示,告诉浏览器如何存储和发送cookie,哪几种参数并不要作为发送到服务器的cookie信息的一每种,不要 cookie中的名值对儿(name=value)才会被发送。

没有 硬性限制

IE6

浏览器

个数和尺寸限制

请求头中的Cookie字段是浏览器发送给服务器的cookie信息,cookie的值另1个 被其他同学设置为了ok。响应头中的Set-Cookie字段是服务器返回给浏览器的cookie信息(实际上这时,cookie的值又被设置为了test)(我倘若描述你你这种 难题,我没了乎 理解的对不对。)。

控制台中会输出以下结果:

只显示出了名值对儿,没有 显示该cookie的其它字段的信息。

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

本质上还是字符串的操作。

访问cookie时的同源限制

IE7

并是不是 子cookie的格式:

域  domain:可选。表示该cookie对于哪个域是有效的。所有向该域发送的请求中详细都是富含你你这种 cookie信息。你你这种 值可不要要 富含子域(如www.wrox.com,表示该cookie信息只向该域名发送),也可不要要 不富含(如.wrox.com,则对于wrox.com的所有子域详细都是效)。可能没有 明确规定,没有 你你这种 域会被认作来自设置该cookie的那个服务器所在的域。

名称和值 name = value:必填。name和value详细都是字符序列,除非富含在双引号内,或者不包括分号、逗号、等号和空格。Web服务器可不要要 创建任意的name=value关联,浏览器在后继对站点的访问中会将其送会给web服务器。

CORS请求默认不发送Cookie和HTTP认证信息。可能要把Cookie发到服务器,一方面要服务器同意,指定Access-Control-Allow-Credentials字段为true。买车人面,开发者需要在AJAX请求中打开XMLHttpRequest对象的withCredentials属性。或者,即使服务器同意发送Cookie,浏览器倘若会发送。可能,服务器要求设置Cookie,浏览器倘若会避免。

HTML代码:

Firefox

点击开发者工具中的Application选项,在左边找到Cookies下拉菜单,点击第1个 域名,就可不要要 看过这七个cookie的详细信息。具体如下:

安全标志  secure:可选。该字段详细都是键值对的形式,可能要指定该字段,倘若在设置cookie时打上去secure字符即可。设置了该字段后,该cookie不要 在使用SSL连接的另1个 才发送到服务器。之类:指定域为www.wrox.com的cookie,在制定了secure字段后,该cookie不要 发送给https://www.wrox.com,而发送给http://www.wrox.com的请求不要打上去该cookie。

Chrome

80

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

通过BOM提供的document.cookie接口,在前端可不要要 对cookie进行操作(增、删、改),本质上是对符合一定规律的1个 字符串进行操作,另1个 开发人员就可不要要 利用cookie在本地存储你这种 数据。当然,建议存储你这种 非敏感信息。

JS代码:

当超过单个域名限制另1个 需要再设置cookie,浏览器就会清除另1个 设置的cookie。

没有 硬性限制

在Application选项卡中的cookies选项查看cookie:

之类,我在Chrome中打开你你这种 页面:https://segmentfault.com/a/1190000004558040,在控制台中输入以下代码:

该cookie的值被重设为了ok。

举例,用document.cookie设置cookie:

通过服务器设置的cookie信息通过响应头返回给浏览器,浏览器将响应头中的cookie信息保处在本地,当下次向服务器发送HTTP请求时,就自动将保存的哪几种cookie信息打上去到请求头中(富含通过document.cookie接口设置的cookie)。

HTTP专用  HttpOnly:可选。该字段不要 在服务端设置,表示该cookie是是不是能通过JS(BOM的document.cookie接口)去访问。默认情况汇报下HttpOnly字段为空,表示可不要要 通过JS访问该cookie。

Cookie的限制主要有两条:

需要注意的是,可能要发送Cookie,Access-Control-Allow-Origin就不要 设为星号,需要指定明确的、与请求网页一致的域名。一起去,Cookie依然遵循同源政策,不要 用服务器域名设置的Cookie才会上传,你这种 域名的Cookie并不要上传,且(跨源)原网页代码中的document.cookie也无法读取服务器域名下的Cookie。

Opera

      本文转自zsdnr  51CTO博客,原文链接:http://blog.51cto.com/12942149/1928948,如需转载请自行联系原作者

通过document.cookie设置的cookie也会被浏览器打上去到请求头中。

Cookie可不要要 通过服务器进行设置,离米 服务器给用户贴的1个 标签,用于跟踪用户的情况汇报。

20

可绑定的cookie的个数

例子(使用wamp环境):

子cookie是存放上单个cookie中的更小段的数据。也倘若使用cookie值来存储多个名值对儿。

没有 删除已有cookie的直接妙招 。什么都,需要使用相同的路径(path)、域(domain)和安全选项(secure)再次设置原cookie,并将失效时间设置为过去时间

会话cookie与持久cookie之间的唯一区别倘若它们的过期时间。

当用于设置cookie时,document.cookie可不要要 设置1个 新的cookie字符串,你你这种 cookie字符串会被解释并打上去到当前现有的cookie集合中。其中名值对儿(name=value)是需要的(最好用encodeURIComponent()对name和value进行编码),其它字段在cookie的组成每种已做过介绍。

浏览器中对于单个cookie的尺寸详细都是限制,一般限制在4MB。尺寸限制影响到1个 域名下的所有cookie,而并不每个cookie单独限制。

接下来点击设置cookie按钮,重设该cookie,或者再点击显示cookie按钮:

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

或者,可能省略withCredentials设置,有的浏览器还是会一起去发送Cookie。这时,可不要要 显式关闭withCredentials。

 现在点击显示cookie按钮:

 第一次打开该页面时,点击显示cookie按钮,控制台无输出内容,谷歌开发者工具中Application选项卡中的cookie选项中也为空。

Safari

持久cookie的生存时间更长你这种 ,它存储在用户的硬盘上,浏览器退出或计算机重启时其他同学仍然处在。

Cookie在性质上是绑定在特定的域名下的。当创建了1个 cookie后,再给创建它的域名发送请求时,请求头中详细都是富含你你这种 cookie。你你这种 限制确保了储处在cookie中的信息不要 让批准的域访问,而无法被你这种 域访问。

在前面的图片中,响应头中的1个 Set-Cookie就代表1个 cookie;请求头中的Cookie字段中可不要要 富含多个cookie的名值对儿,而详细都是仅富含1个 cookie的名值对儿。

按照规范,开发人员无法利用JS在前端修改cookie的HttpOnly字段,不过有的浏览器没有 你你这种 限制,具体看这篇文章:浏览器中因cookie设置HttpOnly标志引起的安全难题

当用来获取cookie时,document.cookie返回当前页面可用的所有cookie的字符串,一系列由分号隔开的名值对儿。

下面是退出博客园登录时的响应头和请求头,响应头富含Set-Cookie字段,请求头富含Cookie字段:

同源限制

点击发送请求按钮,在Network选项卡中查看头部信息:

PHP代码:

(摘自阮一峰老师的文章:跨域资源共享 CORS 详解)

有七个由分号分隔得名值对儿,表示有七个cookie可用(所有名字和值详细都是经过URL编码的,什么都需要使用decodeURIComponent()来解码。)。

通过document.cookie设置的cookie并不要覆盖现有的cookie,除非设置的cookie的name在现有cookie集合中可能处在,或者path/domain/secure这多少选项一定要和旧cookie 保持一样。或者不要修改旧cookie,倘若打上去了1个 新的 cookie。

关于如何在服务端设置该字段,请看这篇文章:关于Cookie安全性设置的哪几种事

失效时间  expires(新版的cookie规范中是max-age字段):可选。你你这种 字段会指定1个 日期字符串,用来定义cookie的实际生存期。一旦到了你你这种 日期,就不再存储或发布你你这种 cookie了,该cookie就会被删除。可能设置的日期是另1个 的时间,则cookie会被立刻删除。

Cookie的个数和尺寸限制

其他同学再点击发送请求按钮,看看你你这种 次请求的头部信息:

可能设置了Discard参数(cookie版本1中的参数),可能没有 设置Expires可能Max-Age参数(cookie版本1中的参数)来说明扩展的过期时间,你你这种 cookie倘若1个 会话cookie。

路径  path:可选。通过你你这种 字段可不要要 为服务器上特定的文档分配cookie。可能path字段是1个 URL路径前缀,就可不要要 附加1个 cookie。之类:路径 /foo与 /foobar和 /foo/bar.html相匹配。路径 / 与域名中的所有内容都匹配。默认值是设置 Cookie 时的当前目录。

80