js隨手筆記之一 儲存之cookies
〉〉〉概念〈〈〈
什麼是cookie?
全稱:HTTP Cookie,最初是用於客戶端儲存回話資訊的 。cookie在性質上是繫結在特定的域名下,當設定一個cookie後再給建立它的域名傳送請求時,都會包含這個cookie。
cookie的作用是什麼?
1. 當傳送請求時會攜帶客戶端所儲存的回話資訊,可用於伺服器端驗證客戶是來自於傳送的哪個請求。
2. 可用於為客戶提供個性化的服務,例如:自動登入等
〉〉〉javascript 如何讀寫cookie?〈〈〈
1. 首先,我們先了解下cookie包含哪些屬性崗位
2. 讀寫,下面是比較通用的原生js操作cookie的方法
在客戶端中都是通過document.cookie這個屬性來讀寫cookie。
每一個cookie都是以一個名/值對的形式存在,設定的時候,可以根據我們的需求,給cookie新增不同的屬性值,例如我們可以這樣設定:document.cookie="testCookie=123";這樣我們設定了一個名為testCookies,值為123的cookie。
又比如,我們想要在某個cookie上加一個過期時間,超過這個時間cookie將自動
消失,例如:
document.cookie="testCookie=123;expires=date_GMT";其中date_GMT 是Date型別的GMT_String格式。
如果當我們設定的cookie已經存在於客戶端中時,則會將已經存在的cookie覆蓋掉。
有趣的是:當我們設定cookie的時候,我們是直接給document.cookie這個屬性賦值,而我們直接讀取這個屬性的時候是獲取到了所有cookie。
3. 刪除cookie
〉〉〉cookie的限制和弊端〈〈〈
因為cookie是儲存在客戶端的計算機上的,為了不讓cookie被惡意使用,瀏覽器加入了一些針對cookie的限制(單個域名):
1. 數量:20個(不同的瀏覽器數量有所不同,ie7以下20個,ie7以上、Firefox:50個)
2. 大小:大多數瀏覽器都限制在4095B以內。
3. 清理機制:當cookie的數量或大小超過瀏覽器的限制之後,瀏覽器將會清除以前設定的cookie,騰出空間給新設定的cookie。在IE和Opera 會清理近期最少使用的cookie,Firefox會隨機清理cookie。
cookie也有缺陷,cookie作為儲存在客戶端的會話資訊,當我們給某個域名傳送請求時,也會將該域名下的cookie攜帶傳送給伺服器,這不可避免的佔用了我們一部分網路資源,造成浪費。
寄語:請合理使用cookie,避免資源浪費和效能。cookie並不是儲存在一個安全的環境中,所以一定不要儲存重要的資料。