每個cookie都有四個可選的屬性,他們分別控制cookie的生存周期、可見性、安全性等。
1.expires
它指定了cookie的生存期。默認情況下,cookie是暫時存在的,他們存儲的值只在瀏覽器會話期間存在。當瀏覽器推出后,這些值也就丟失了。通過expires屬性,可以為cookie設置一個過期日期。盡管expires屬性仍然有效,但是它已經被max-age屬性取代,后者用秒來設置cookie的聲明周期。設置這兩個屬性中的任何一個,都會使瀏覽器把cookie保存到一個本地文件中,以便用戶下次訪問這個網頁時能夠再將它讀出來。一旦超過了終止日期,或者超過了max-age的生命期,那個cookie就會被瀏覽器自動從cookie文件中刪除。
2.path
它指定了與cookie關聯在一起的網頁。默認情況下,cookie會和創建它的網頁以及與這個網頁處于同一個目錄下的網頁和處于該目錄的子目錄下的網頁關聯。例如,如果一個cookie由位于
http://www.wanjiacai.com/login/index.html的網頁創建,那么它對位于
http://www.wanjiacai.com/login/order.html和位于
http://www.wanjiacai.com/login/validate/index.html的網頁也是可見的,但是對于位于
http://www.wanjiacai.com/lottery/index.html的網頁就不可見了。
3.domain
默認情況下,只有和設置cookie的網頁來自同一web服務器的頁面才能訪問這個cookie。但是,大的網站可能需要由多個web服務器共享cookie。例如,位于talk.wanjiancai.com的服務器就可能讀取info.wanjiancai.com設置的cookie值。這里就引入了第三個cookie屬性domain。將定由位于talk.wanjiancai.com的頁面創建的cookie把自己的path屬性設置成“/”,把domain設置成了“.wanjiacai.com”,那么所有位于info.wanjiancai.com的頁面和所有位于talk.wanjiancai.com的頁面以及所有位于wanjiancai.com域的其他服務器上的網頁都能夠訪問這個cookie。如果沒有設置cookie的domain值,該屬性的默認值就是創建cookie的網頁所在的服務器的主機名。注意,不能將一個cookie的域設置成服務器所在的域之外的域。
4.secure
secure是一個布爾值,它指定了在網絡上如何傳輸cookie值。默認情況下,cookie是不安全的,也就是說,他們是通過一個普通的、不安全的http鏈接傳輸的。但是如果將cookie標記為安全的,那么它將只在瀏覽器和服務器通過https或其他安全協議鏈接是才被傳輸。
由于對第三方cookie(也就是那些和web頁面中的圖像相關而不是和web頁面本身相關的cookie)的濫用,cookie對很多web用戶來說聲名很壞。例如,第三方cookie使用一個廣告商公司從一個站點到另一個站點地跟蹤用戶,這種實際情況帶來的隱私問題使得一些用戶關閉了他們的cookie。在javascript代碼中使用cookie之間,希望首先查看他們是否激活。在大多數瀏覽器中,可以通過檢查navigator.cookieEnabled屬性來做到這一點。
posted on 2009-08-14 18:05
zhangxl 閱讀(2579)
評論(0) 編輯 收藏 所屬分類:
web