首先我們需要了解什么是Cookie,參見http://blog.csdn.net/sinat_34927324/article/details/53835711。
了解了什么是Cookie后,我們便來介紹為Cookie服務的兩個首部字段。
一,Set-Cookie
該首部字段用來告知客戶端有關Cookie的各種信息。
舉例:
Set-Cookie:status=enable;expires=Tue,05 Jul 2011 07:26:31 GMT;path=/;domain=.hacker.jp;
下面我們來通過一張表來認識與該首部有關的字段值
(1)expires屬性
該屬性指定瀏覽器可發送Cookie的有效期。當省略該屬性時,其有效期僅限于維持瀏覽器會話時間段內,即瀏覽器被關閉之前。
另外,一旦Cookie從服務器端發送至客戶端,服務器就不可以顯示刪除Cookie。但是可以通過覆蓋已過期的Cookie,實現對客戶端Cookie的實質性刪除操作。
(2)path屬性
該屬性可用于限制指定Cookie的發送范圍的文件目錄。
(3) domain屬性
通過Cookie的domain屬性指定的域名可做到與結尾匹配一致。比如,當指定example.com后,除可以向example.com發送Cookie以外,還可以向www.example.com或www2.example.com等發送Cookie。
因此,除了針對具體指定的多個域名發送Cookie之外,不指定domain屬性更加安全。
(4)secure屬性
該屬性用于限制Web頁面僅在HTTPS安全連接時,才可以發送Cookie。
舉例:
Set-Cookie:name=value;secure
也就是說,以上例子僅當在https://www.example.com/(HTTPS)安全連接的情況下才會進行Cookie的回收。也就是說,即使域名相同,http://www.example.com/(HTTP)也不會發生Cookie回收行為。
(5)HttpOnly屬性
該屬性是Cookie的擴展功能,它使javaScript腳本無法獲得Cookie。其主要目的是為防止跨站腳被攻擊(Cross-site-scripting,XSS)對Cookie信息的竊取。
舉例:
Set-Cookie:name=value;HttpOnly
通過上述設置,使用Javascript的document.cookie就無法讀取附加HttpOnly屬性后的Cookie的內容了。因此,也就無法在XSS中利用JavaScript劫持Cookie了。
二,Cookie
該首部字段用來告知服務器,當客戶端想獲得HTTP狀態管理支持時,就會在請求中包含從服務器接收到的Cookie。
舉例:
Cookie:status=enable
新聞熱點
疑難解答