1. 程式人生 > >HTTP報頭中為cookie服務的首部欄位

HTTP報頭中為cookie服務的首部欄位

Cookie的工作機制是使用者識別和狀態管理。Web網站為了管理使用者的狀態,會通過Web伺服器,把一些資料臨時寫入使用者的計算機內。當用戶訪問該Web網站時,可通過通訊方式取回之前存放的Cookie。呼叫Cookie是,由於可校驗Cookie的有效期,,以及傳送方的域、路徑、協議等,所以正規釋出的Cookie內的資料不會因為來自其他Web站點和攻擊者的攻擊而洩漏。
Set-Cookie欄位的屬性

屬性 說明
NAME= VALUE 賦予Cookie的名稱和其值(必須項)
expires = DATA Cookie的有效期(若沒有明確指定,則預設到瀏覽器關閉為止),一旦Cookie從伺服器傳送至客戶端,伺服器就不存在可以顯示刪除Cookie的方法。但可以通過覆蓋已過期的Cookie,實現對客戶端Cookie的實質性刪除操作。
path=PATH 將伺服器上的檔案目錄組委Cookie的適用物件(若不指定則預設為文件所在的檔案目錄)
domain = 域名 作為Cookie使用物件的域名(若不指定則預設為建立Cookie的伺服器域名),通過domain屬性指定的域名可做到與結尾匹配一致。除了針對具體指定的多個域名傳送Cookie外,不指定domain屬性顯得更安全。
Secure 僅在HTTPS安全通訊時才傳送Cookie。當沒有指定Secure時,無論是HTTP還是HTTPS都會對Cookie進行回收。
HttpOnly 加以限制,使Cookie不能被JavaScript指令碼訪問。加上HttpOnly屬性後,通常從Web網頁內還可以對Cookie進行讀取操作,但使用JavaScript的document.Cookie就無法讀取附加HttpOnly屬性後的Cookie的內容了。也就無法再XSS中那個利用JavaScript劫持Cookie了。

首部欄位Cookie會告知伺服器,當客戶端想獲得HTTP狀態管理支援時,就會在請求中包含從伺服器接收到的Cookie。接收到多個Cookie時,同樣可以以過個Cookie形式傳送。