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