Cookies

  1. Cookies通过HTTP响应发送给客户端(Set-Cookie字段设置)。 
  2. 浏览器每次发出请求(Cookies字段设置)时都会将当前匹配的Cookies发送给服务器(直到Cookies过期)
  3. 属性值的等号两边,不能有空格。
  4. Cookies提供删除和修改的方式,需要使用其他方式间接实现。
  5. 一个响应头可以设置多个Set-Cookie。
  6. eg:Set-Cookie: key=value; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly 。
  7. 如果服务器想改变一个早先设置的 Cookie,必须同时满足四个条件:Cookie 的keydomainpathsecure都匹配,只要有一个属性不同,就会生成一个全新的 Cookie,而不是替换掉原来那个 Cookie。
  8. cookies的大小上限一般为4K,且在不同的浏览器中每个域名的cookies数量也有限制。
  9. 根据浏览器的设置,cookies可能会失效(禁用或者较高的安全级别)

 

                                                                                        Cookies数据结构

Attribute   Name    default                                description                other
Expires   设置具体的过期时间,时间为UTC格式,浏览器根据本地时间对比此值决定是否删除此Cookies 若这两个属性都未设置,则表示当前Cookies是临时Cookies,也就是保存在内存中,关闭浏览器则失效。
Max-Age -1 设置Cookies多久之后过期,单位秒,优先级高于Expires。当Max-Age > 0时,表示在Max-Age秒后过期,浏览器会将Cookies保存在本地存储介质中。当Max-Age=0,表示立即删除此Cookies,服务器可以如此如此删除Cookies。当Max-Age < 0时为临时Cookies,保存在内存中,关闭浏览器则失效。
HttpOnly - JavaScript的  Doecument.cookie API 无法访问; 它们只被发送到服务器。  
Secure - 在不安全的网站中(http:)无法使用该Secure指令设置Cookie,而且浏览器会忽略服务器发送的带Secure的Cookie(新版浏览器中)。带Secure的Cookie只能通过https协议传输。  
Domain 一级域名

属性值必须时当前URL的一部分

指定哪些域名要附带这个Cookie

 
Path 当前路径 Path属性指定浏览器发出 HTTP 请求时,哪些路径要附带这个 Cookie。只要浏览器发现,Path属性是 HTTP 请求路径的开头一部分,就会在头信息里面带上这个 Cookie。必须为绝对路径。  

详细信息请见参考2

 

参考:

[1].http://javascript.ruanyifeng.com/bom/cookie.html

[2].https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies

你可能感兴趣的:(前端)