浏览器cookie机制

说起cookie,不得不说,应该分为ie系和非ie系,至于cookie的格式就不说了。不得不说,http协议中cookie的定义是浏览器支持最差劲的,太不规范了!

除了正常的key-value之外,每个cookie还可以带有以下参数。

1、rfc2109定义了以下的cookie属性

path coment domain max-age secure version

path:

指定cookie的uri路径,每个页面只能访问自己的path和父path的cookie

coment:

cookie注释,实际过程中发现主流的所有浏览器都无法获取这个coment,页面再次请求也不会把这个coment加上去。没发现有什么用

domain:

域名或则ip,没什么好讲的,一般,如果domain错误,页面无法获取这个cookie

secure:

secure 的格式是带有secure 这个key,ex: coname=1; path=/case; secure  后面不带有value。如果带有secure,那么只有https的请求才能访问这个cookie,http则不行

max-age:

相对于客户端的事件,几秒之后cookie失效,比如 max-age=10,那么客户端在收到这个cookie之后,10秒之后,这个cookie需要失效。实际过程中,发现所有ie系的浏览器都不支持这个cookie,而chrome和firefox就支持的很好,其实我个人觉得,max-age比expires这个cookie有用的,因为expires是服务器计算的到指定时间的过期。但是,实际上,客户端是服务器的时间经常会不一致。

version:

和coment差不多,指明cookie版本,实际上看不出浏览器有什么支持,不过带不带好像也没什么问题


2、rfc2969又定义了以下的cookie属性 

port discard CommentURL

这些是后面加上的,

port:

cookie的端口,对指定端口有效

discard:

discard=true,则cookie只对当前会话有效,即使设置了expires时间也一样


ComentURL:

和coment类似


实际测试,所有浏览器都还不支持这几个属性

3、因为历史原因,cookie中还有一个expires属性,但是这个属性虽然不再rfc文档里面,但是确实基本上所有浏览器都支持的

expirs:

格式:Set-Cookie: chexpired=expiredok; expires=Tue, 06 Dec 2011 03:49:50 GMT

即服务器返回一个制定格式的时间,客户端在到这个时间的时候,就会让cookie失效



4、因为ie的原因,浏览器还支持httponly这个属性,

httponly这个属性的意思是,当httponly是true的时候,只有使用http协议时候,才能使用这个cookie,其他的js脚本等都不能访问这个cookie


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值