概述
雖說在現(xiàn)代Web開發(fā)過程中討論Cookie有些不合時宜,但是這是開發(fā)人員如今可以使用的最古老、最穩(wěn)定的客戶端存儲形式。當然,我們并不推薦使用Cookie,只是說它是一種選擇。
Cookie于1994年在Netscape瀏覽器的Beta版本中被引入。它通過隨HTTP請求和響應一起發(fā)送的HTTP header值發(fā)揮作用。眾所周知,每當瀏覽器請求一個資源,就會有一組header隨請求一起發(fā)送。那些header包含各種類型的數(shù)據(jù),其中包括有關(guān)瀏覽器的信息以及它需要的數(shù)據(jù)形式。反過來,服務器也會往回發(fā)送header。
Cookie使用HTTP header發(fā)送,具體來說是名為Cookie的HTTP header,由瀏覽器發(fā)送到服務器,又從服務器發(fā)送到瀏覽器。你會發(fā)現(xiàn)這里有個問題。如果使用客戶端存儲的一個好處是不用通過網(wǎng)絡(luò)發(fā)送數(shù)據(jù),那么來回發(fā)送Cookie不是反其道而行之嗎?這也是上面提到的不建議使用Cookie的另一個原因。
默認情況下,瀏覽器沒有限制可以擁有的Cookie數(shù)量。以前,每個域名最多只能有20個Cookie,但如今的瀏覽器似乎丟掉了這個限制。
Cookie對應唯一的域名。這意味著在foo.com上設(shè)置的Cookie值不能用于goo.com.這樣很好,因為你不會希望其他網(wǎng)站影響你在自己的網(wǎng)站上使用Cookie。
Cookie也可以對應唯一的子域名。例如,app.foo.com是Foo網(wǎng)站的一個獨立的子域名。你可以創(chuàng)建只有app.foo.com可以讀取的Cookie,也可以創(chuàng)建www.foo.com和app.foo.com都可以讀取的Cookie。
更復雜的做法是創(chuàng)建只對特定路徑有效的Cookie。所以,你可能希望創(chuàng)建只有foo.com/app可見的Cookie。
最后,你可以創(chuàng)建只對網(wǎng)站的安全(HTTPS)版本有效的Cookie。顯然,選用哪種方案取決于應用程序的用途,以及你認為哪里需要Cookie值。
除了設(shè)置Cookie出現(xiàn)的地方,還可以指定Cookie的有效時間。
只在當前會話期間存在的Cookie(從根本上說是直到瀏覽器關(guān)閉)
永遠存在的Cookie
存在特定時長的Cookie
特定時間點之后失效的Cookie
使用方法Cookie沒有API。要使用Cookie,只需在代碼中訪問document.cookie對象。例如,可以像下面一樣創(chuàng)建一個Cookie.
document.cookie = "name=zuckjet"
Cookie值必須符合URL編碼規(guī)則,這意味著如果想動態(tài)定義Cookie,那么就需要使用類似encodeURIComponent的輔助函數(shù)。
下面這段代碼世家還是那個創(chuàng)建了兩個Cookie,而不是一個。
document.cookie = "name=zuckberg"; document.cookie = "age=18";
在Cookie值后面使用一個分號可以追加元數(shù)據(jù):
documen.cookie = "name=zuckjet;expires=xxx;domain=xxx"
當我們不指定元數(shù)據(jù)時,Cookie默認只對當前域名的當前路徑有效,有效期是當前會話。
讀取Cookie讀取Cookie多少簡單一些--這取決于你對字符串的解析程度。沒有API可以用來獲取一個Cookie。不過,你只需要簡單地讀取document.cookie就可以了。這樣你可以獲取特定網(wǎng)站的Cookie。比如,segmentfault的cookie值如下:
讀取一個Cookie就意味著將字符串解析成多個有分號分隔的部分。另外還要注意,你無法訪問任何元數(shù)據(jù)。通過document.cookie值無法獲取這類信息。
刪除Cookie要刪除Cookie,只需要將其過期時間設(shè)置成過去的時間即可。從技術(shù)上講,這個時間值無關(guān)緊要,但名稱必須與你想要刪除的Cookie名稱一致。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/107475.html
摘要:保存中文上面我們的例子保存的是英文字符,下面我們來看下保存中文字符會怎么樣。出異常了中文屬于字符,英文數(shù)據(jù)字符,中文占個字符或者個字符,英文占個字符。如果為,則表示刪除該。的值規(guī)定為域名的隱私安全機制決定是不可跨域名的。 什么是會話技術(shù) 基本概念: 指用戶開一個瀏覽器,訪問一個網(wǎng)站,只要不關(guān)閉該瀏覽器,不管該用戶點擊多少個超鏈接,訪問多少資源,直到用戶關(guān)閉瀏覽器,整個這個過程我們稱為一...
摘要:最近在研究,學著使用,開始不會用,就百度了一下,沒有百度到特別完整的解答。查閱了的,綜合了網(wǎng)友的博客,解讀了的源碼,以及使用和驗證,終于明白了中的使用。默認為網(wǎng)站域名過期時間,類型為。使用插件,后續(xù)代碼直接使用或者即可 最近在研究express,學著使用cookie,開始不會用,就百度了一下,沒有百度到特別完整的解答。查閱了express的API,綜合了網(wǎng)友的博客,解讀了cookie-...
摘要:首先先來一段總結(jié)用于本地數(shù)據(jù)存儲,出現(xiàn)在服務器和瀏覽器交互的響應頭部和請求頭部中,受到單域名下的數(shù)量單個大小性能安全限制。子技術(shù)的出現(xiàn)緩解了單域名下的數(shù)量限制,關(guān)于子有一整套工具函數(shù)可以使用。 前言 本篇主要介紹Cookie技術(shù)的讀書總結(jié),但是我認為邏輯上最好會和Web Storage技術(shù)放在一起進行對比,因此后續(xù)會再總結(jié)一篇關(guān)于WEB存儲的姊妹總結(jié),敬請期待。 首先先來一段總結(jié):Co...
摘要:首先先來一段總結(jié)用于本地數(shù)據(jù)存儲,出現(xiàn)在服務器和瀏覽器交互的響應頭部和請求頭部中,受到單域名下的數(shù)量單個大小性能安全限制。子技術(shù)的出現(xiàn)緩解了單域名下的數(shù)量限制,關(guān)于子有一整套工具函數(shù)可以使用。 前言 本篇主要介紹Cookie技術(shù)的讀書總結(jié),但是我認為邏輯上最好會和Web Storage技術(shù)放在一起進行對比,因此后續(xù)會再總結(jié)一篇關(guān)于WEB存儲的姊妹總結(jié),敬請期待。 首先先來一段總結(jié):Co...
閱讀 2211·2021-10-18 13:28
閱讀 2523·2021-10-11 10:59
閱讀 2347·2019-08-29 15:06
閱讀 1140·2019-08-26 13:54
閱讀 816·2019-08-26 13:52
閱讀 3153·2019-08-26 12:02
閱讀 3008·2019-08-26 11:44
閱讀 2519·2019-08-26 10:56