如何清除cookie資料(cookie清除了有什麼影響)

隨著web應用程式的出現,也產生了對於能夠在客戶端上儲存使用者資訊能力的要求。這個問題的第一個解決方案是以cookie形似出現的。網景公司在一份名為“Persistent Client State: HTTP Cookies”的標準中對cookie機制進行了闡述。

cookie限制:

  1. 每個域的cookie個數是有限的,ie7之後是每個域30個,firefox是50個,chrome和safari沒有限制

  2. 當超過單個域名cookie限制後,還要設定cookie,瀏覽器就會清除前的cookie;ie和opera會刪除最近最少使用過的cookie;firefox的刪除並沒有規律

  3. 單個cookie的容量也有限制,每個至多4kb,超過4kb這個cookie會無聲消失掉。

cookie的構成:

  • 名稱:一個唯一確定cookie的名稱。cookie的名稱必須是經過url編碼的

  • 值:儲存在cookie中字串值。值必須被url編碼

  • 域:cookie對於哪個域是有效的。所有向該域傳送的請求都會包含這個cookie資訊。這個值可以包含子域:www.wrox.com也可以不包含子域:.wrox.com

  • 路徑:指定對於域中的那個路徑,應該向伺服器傳送cookie。

  • 失效時間:表示cookie何時應該被刪除的時間戳。預設情況下,瀏覽器回話結束時即將所有cookie刪除;如果設定過期時間,cookie可在瀏覽器關閉後依然儲存在使用者的機器上。

  • 安全標誌:指定後,cookie只有在使用SSL連線的時候才能傳送到伺服器。

尤其注意:域、路徑、失效時間和secure標誌都是伺服器給瀏覽器的指示,以指定何時應該傳送cookie。這些引數並不會作為傳送到伺服器的cookie資訊的一部分,只有名值對才會被髮送。

document.cookie瀏覽器提供的用來訪問和設定cookie。這個屬性的特殊之處在於因為使用它的方式不同而表現出不同的行為

  • 當用來獲取屬性時,document.cookie返回當前頁面可用的(根據域、路徑、失效時間和安全設定)所有cookie的字串,一系列由分號隔開的鍵值對:"nam1=value1;name2=value2;name3=value3"注意最後沒有分號

  • 當用於設定值的時候,document.cookie屬性可以設定為一個新的cookie字串。這個cookie字串會被解釋並新增到現有的cookie集合中。除非cookie名已經存在,否則設定document.cookie並不會覆蓋cookie。:document.cookie=encodeURIComponent(name) "=" encodeURIComponent(value) "; domain=.wrox.com; path=/";

WebStorage

webStorage的目的是克服由cookie帶來的一些限制,當資料需要被嚴格控制在客戶端上時,無需持續地將資料發回伺服器。Web Storage的兩個主要目的:

  • 提供一種在cookie之外儲存會話資料的途徑;

  • 提供一種儲存大量可以跨會話存在的資料的機制;

Storage型別

Storage型別提供最大的儲存空間來儲存鍵值對兒。Storage的例項主要常用以下方法:

  • getItem(name):根據指定的名字name獲取對應的值

  • removeItem(name):刪除由name指定的鍵值對兒

  • setItem(name):位指定的name設定一個對應值

還可以使用length屬性來判斷有多少鍵值對存放在Storage物件中。

localStorage物件

要訪問同一個localStorage物件,頁面必須來自同一個域(子域名無效),使用同一協議,在同一視窗上。

儲存在localStorage中的資料保留到通過JavaScript刪除或者是使用者清除瀏覽器快取。

storage事件

對storage物件進行任何修改,都會在文件上觸發storage事件。

document.addEventListener('storage', function(evt){});