IE与firfox都可以关闭Cookie,今天测试的时候发现一点不同。Cookie的原理我的理解是这样:
开启Cookie时,浏览器会根据请求的URL在请求头里附加相应Cookie请求头:
GET /blog/34555 HTTP/1.1
Accept: */*
…
Cookie: _javaeye3_session_=BAh7BjoPc2Vzc2lvbl9pZCIlMjU2N2RlODA3ODdmYzY1MWE0ZTdkMmMwZGExYmZjMGQ%3D--6058f2aeca19fa3ec1aaf3c7fba1197f8c0da9dc; __utmc=185941238
应用服务器如果读到Cookie请求头就会认为该浏览器是接受Cookie的,所以就会在响应报文头里添加Set-Cookie为用户系统设置Cookie:
Set-Cookie: BAIDUID=34B6604085F59ED2ECF65D0F8A2C00C5:FG=1; expires=Tue, 05-Jul-41 09:27:21 GMT; path=/; domain=.baidu.com
反过来说如果浏览器禁用了Cookie,请求报文里就没有Cookie请求头。IE与firfox均如此。
相应的响应报文里也不会有Set-Cookie响应头。(但是我发现大多数应用服务器在这种情况也会在响应报文头里加上Set-Cookie响应头,这有用吗?会不会增加网络负担?有了解的请告知)相应的功能则通过URL重写等技术来实现.
言归正传,今天发现IE与firfox的一点不同是,IE在关闭Cookie时,如果访问http://localhost:8080
Cookie也是生效的,也就是说请求是发往本机的Cookie强行生效。而firfox不生效。完毕。
本文转自 anranran 51CTO博客,原文链接:http://blog.51cto.com/guojuanjun/603319