Cookie 提供了一種在 Web 應用程序中存儲用戶特定信息的方法。
例如,當用戶訪問您的站點時,您可以使用 Cookie 存儲用戶首選項或其他信息。當該用戶再次訪問您的網站時,應用程序便可以檢索以前存儲的信息。
什麼是 Cookie?
Cookie 是一小段文本信息,伴隨著用戶請求和頁面在 Web 服務器和浏覽器之間傳遞。
Cookie 包含每次用戶訪問站點時 Web 應用程序都可以讀取的信息。
例如,如果在用戶請求站點中的頁面時應用程序發送給該用戶的不僅僅是一個頁面,還有一個包含日期和時間的 Cookie,用戶的浏覽器在獲得頁面的同時還獲得了該 Cookie,並將它存儲在用戶硬盤上的某個文件夾中。
以後,如果該用戶再次請求您站點中的頁面,當該用戶輸入 URL 時,浏覽器便會在本地硬盤上查找與該 URL 關聯的 Cookie。如果該 Cookie 存在,浏覽器便將該 Cookie 與頁請求一起發送到您的站點。然後,應用程序便可以確定該用戶上次訪問站點的日期和時間。您可以使用這些信息向用戶顯示一條消息,也可以檢查到期日期。
Cookie 與網站關聯,而不是與特定的頁面關聯。因此,無論用戶請求站點中的哪一個頁面,浏覽器和服務器都將交換 Cookie 信息。用戶訪問不同站點時,各個站點都可能會向用戶的浏覽器發送一個 Cookie;浏覽器會分別存儲所有 Cookie。
Cookie 幫助網站存儲有關訪問者的信息。一般來說,Cookie 是一種保持 Web 應用程序連續性(即執行狀態管理)的方法。除短暫的實際交換信息的時間外,浏覽器和 Web 服務器間都是斷開連接的。對於用戶向 Web 服務器發出的每個請求,Web 服務器都會單獨處理。但是在很多情況下,Web 服務器在用戶請求頁時識別出用戶會十分有用。例如,購物站點上的 Web 服務器跟蹤每位購物者,這樣站點就可以管理購物車和其他的用戶特定信息。因此,Cookie 可以作為一種名片,提供相關的標識信息幫助應用程序確定如何繼續執行。
使用 Cookie 能夠達到多種目的,所有這些目的都是為了幫助網站記住用戶。例如,一個實施民意測驗的站點可以簡單地將 Cookie 作為一個 Boolean 值,用它來指示用戶的浏覽器是否已參與了投票,這樣用戶便無法進行第二次投票。要求用戶登錄的站點則可以通過 Cookie 來記錄用戶已經登錄,這樣用戶就不必每次都輸入憑據。
Cookie 的限制
大多數浏覽器支持最大為 4096 字節的 Cookie。由於這限制了 Cookie 的大小,最好用 Cookie 來存儲少量數據,或者存儲用戶 ID 之類的標識符。用戶 ID 隨後便可用於標識用戶,以及從數據庫或其他數據源中讀取用戶信息。(有關存儲用戶信息安全建議的信息,請參見下面的“Cookie 和安全性”一節。)
浏覽器還限制站點可以在用戶計算機上存儲的 Cookie 的數量。大多數浏覽器只允許每個站點存儲 20 個 Cookie;如果試圖存儲更多 Cookie,則最舊的 Cookie 便會被丟棄。有些浏覽器還會對它們將接受的來自所有站點的 Cookie 總數作出絕對限制,通常為 300 個。
您可能遇到的 Cookie 限制是用戶可以將其浏覽器設置為拒絕接受 Cookie。如果定義一個 P3P 隱私策略,並將其放置在網站的根目錄中,則更多的浏覽器將接受您站點的 Cookie。但是,您可能會不得不完全放棄 Cookie,而通過其他機制來存儲用戶特定的信息。