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