cookie之困

参见http://yun.baidu.com/share/link?shareid=1575530779&uk=1795493794

cookie三元组(name,domain,path),它唯一确定一个cookie,三元组相同时,就是同一个cookie,不同时,就是不同的cookie,一般来说,

相同domain和path的cookie放在同一个文件中,并用*号隔开,当然,其实并不用关心存储方式,不同的浏览器存储方式也不一样。

cookie的访问有一个同源策略,以(domain,path)来判断,不区分端口和http还是https

domain匹配:机制跟面向对象编程的继承很像,也就是说子domain可以访问父domain的cookie,当domain=.baidu.com时,表示所有二级域名比如www.baidu.com都可以访问该cookie

path匹配:机制跟面向对象编程的继承很像,子path可以访问父path的cookie,比如path=/test/hello/可以访问path=/test/的cookie,当path=/时,表示,所有目录子可以访问该cookie

domain和path都要满足匹配规则时,才会读取相应的cookie

cookie读取出来后是不带domain,name属性的,即request header :cookie中不带属性

cookie写入时是带属性的,即response header: set-cookie是带属性的

子domain,path与父domain, path下最好不要出现同名的cookie,不然容易出错,因为没有这方面的规定,不同的浏览器和服务端使用不同的策略读

含值键值对的cookie:以前一直用的是nam=value单键值对的cookie,一说到含多个子键值对的就蒙了。现在总算弄清楚了。

含多个子键值对的cookie格式是name=key1=value1&key2=value2。可以理解为单键值对的值保存一个自定义的多键值字符串,

其中的键值对分割符为&,当然可以自定义一个分隔符,但用asp.net获取时是以&为分割符。

原文地址:https://www.cnblogs.com/ajianbeyourself/p/4904105.html