Cookie定義了一些HTTP請求頭和HTTP響應頭,通過這些HTTP頭信息使服務器可以與客戶進行狀態交互。
客戶端請求服務器後,如果服務器需要記錄用戶狀態,服務器會在響應信息中包含一個Set-Cookie的響應頭,客戶端會根據這個響應頭存儲Cookie信息。再次請求服務器時,客戶端會在請求信息中包含一個Cookie請求頭,而服務器會根據這個請求頭進行用戶身份、狀態等較驗。
下面是一個實現Cookie機制的,簡單的HTTP請求過程:
1. 客戶端請求服務器
客戶端請求IT筆錄網站首頁,請求頭如下:
GET / HTTP/1.0
HOST: itbilu.com
2. 服務器響應請求
Cookie是一種key=value形式的字符串,服務器需要記錄這個客戶端請求的狀態,因此在響應頭中包一個Set-Cookie字段。響應頭如下:
HTTP/1.0 200 OK
Set-Cookie: UserID=itbilu; Max-Age=3600; Version=1
Content-type: text/html
……
3. 再次請求時,客戶端請求中會包含一個Cookie請求頭
客戶端會對服務器響應的Set-Cookie頭信息進行存儲。再次請求時,將會在請求頭中包含服務器響應的Cookie信息。請求頭如下
GET / HTTP/1.0
HOST: itbilu.com
Cookie: UserID=itbilu