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不生效。完畢。