大部份人來說,cookie最常就是用在登入webmail帳號、網站會員,或儲存購物車內容用,但除了存上面資料,cookie也可以記錄你在網站的一些偏好設定,或記錄有開過那些網站,所以問題1:封鎖和允許設置了之後對於IE使用者有何影響,就是封鎖之後,會員或webmail很多會無法登入成功。
問題2:將某網站網址給列入並允許的話,是不是我在該網站所登錄過的帳號就會一直處於登錄狀態呢?這個應該是說,只是讓這個網站可以在你電腦上記錄資料,目前一般網站會設定會員登錄後的有效時間,像webmail很多都會設定閒置多久不動的話,webmail的登錄權就會失效,要再看mail內容就要再次登入。而有一些論壇就可以選這次登錄後,可以一個月內不用再次登錄,也是記錄在cookie中。所以如果有手動或自動去清cookie,登錄資料就沒了,下次就還是要登入。
morpheusn提到:
cookie
(1) cookie 是你瀏覽網頁時,網頁要求要存在你 local 電腦的資料。
(2) cookie 時有時效性的,通常在存 cookie 時,會指定這個 cookie 的有效期限,當然可以設為永遠有效,但那不常見。
(3) cookie 跟登入的狀態,是兩件事。會有這樣的誤解,是因為,cookie 常常用來存放登入的帳號及密碼,如果有 cookie,你可以直接進入網頁,所以會有你還在線的錯覺。
(4) 但是有一些情況下,你已經關閉了該網頁,但是你的 brower 還開著,這時候如果有網站是用檢查 cookie 存放的資料,來判斷你是否仍在線,或是檢查該網頁所使用的 network connection 是否還連著,這時候就會誤判了。
大概是這樣,哪位大大,加以補充或更正。
我補充一下好了。
cookie其實只是http協定中的一個header,先不管欄位有哪些,他的內容都是明碼,用明碼傳送帳號其實很危險的,所以大部分伺服器技術使用cookie時只會傳送一個key當作seesion id,伺服器會用這個key做索引來搜尋存在「伺服器」這一端的session資料。真的有需要把資料存放在cookie裡時,通常會盡一步把存放在cookie裡的資料在伺服器端就先加密過才放進cookie傳送給瀏覽器或其他http客戶端。
如果有興趣,可以自己追蹤,用firebug或是chrome附的開發工具等等來觀察http header,裡面就會看到。瀏覽器向伺服器發出的request裡面會有「Cookie:」這個header,伺服器返回的response裡面會有「Set-Cookie:」這個header(也可能是Set-Cookie2:)。
想要詳細了解,可以參考標準文件:
RFC2109以及RFC2965。RFC2965定義了Set-Cookie2,不過好像用的還不多,Set-Cookie及Cookie定義在RFC2109。更早的用法可能要參考Netscape提出的提案,不過不知道好不好找...
(嗯嗯,翻了一下,我手邊的Client-Side Javascript Reference Guide 1.3的附錄裡面有Netscape版的Set-Cookie語法說明,重大的差別是Netscape版使用「Expires」而RFC2109使用「Max-Age」作為cookie生存時間的設定欄位。)