瀏覽器cookie詳解

爲何會有cookie

Web應用程序是使用HTTP協議傳輸數據的。HTTP協議是無狀態的協議。一旦數據交換完畢,客戶端與服務器端的鏈接就會關閉,再次交換數據須要創建新的鏈接。這就意味着服務器沒法從鏈接上跟蹤會話。前端

你可能會有這樣的經歷,登錄一個網站的時候會提醒你要不要記住帳戶和密碼,這樣下次來你就不用再次輸入帳號密碼了。這就是cookie的做用,當咱們再次訪問的時候,方便服務器直接根據咱們的cookie來直接取上一次取過的東西(對於每個cookie服務器會對這個cookie存儲上一次咱們拿過的數據,下一次對於同一個cookie的時候,就直接在這裏取)web

什麼是Cookie

Cookie是由服務器端生成,發送給User-Agent(通常是瀏覽器),(服務器告訴瀏覽器設置一下cookie),瀏覽器自動會將Cookiekey/value保存到某個目錄下的文本文件內,下次請求同一網站時也會自動發送該Cookie給服務器,即添加在請求頭部(前提是瀏覽器設置爲啓用cookie)。
Cookie就是一個小型文件(瀏覽器對cookie的內存大小是有限制的-------用來記錄一些信息)chrome

Cookie 的特色

Cookie 具備保質期

即有永久的也含有臨時的,每一個瀏覽器都含有本身的cookie,每次請求的時候,都會根據domain來發送相應的cookie,可經過設置expires 、max-age來設定保存日期,不設置的話默認是臨時存儲,即關閉瀏覽器就消失。瀏覽器

document.cookie = 'expires=時間/max-age=秒'

知足同源策略

雖然網站images.google.com與網站www.google.com同屬於Google,可是域名不同,兩者一樣不能互相操做彼此的Cookie。並且path也必須同樣才能相互訪問彼此的cookie,須要注意不一樣瀏覽器對path訪問規定不同,對於chrome,path必須爲當前目錄,設置爲其餘目錄無效,只能當前頁面只能訪問當前目錄及其以上的cookie安全

Cookie內存大小受限制

Cookie有個數和大小的限制,大小通常是4k服務器

clipboard.png

Cookie的安全性

Cookie 在本地 能夠被更改文件 敏感的數據不要放在cookiecookie

Cookies的使用

Cookie實際上主要是web服務器開發人員設置的,前端開發人員較少使用cookie,可是也會使用,好比設置登陸也頁面的帳號信息。
咱們打開瀏覽器控制檯,對於chrome,切換到Application,在左邊的Storage下面能夠看到cookie項,點開就能看到當前有哪些cookie,例以下面dom

clipboard.png

能夠看到每一行就是一個cookie,裏面含有它的值以及它的相關信息,待會將詳細介紹每個屬性的含義。先來看一下怎麼設置Cookie網站

document.cookie='name=xiaoming;expires='+oDate

上面就簡單的設置了一項Cookie,每個屬性使用';'隔開,而且一次不能設置多個Cookie,一次只能設置一個,後面的也不會覆蓋前面的Cookie,只會拼接到當前Cookie的字符串後面。具體使用方法以下。google

  • 經過document.cookie 設置cookie

    • 格式:名字=值(document.cookie = 'age =18;max-age=1000')
    • 不會覆蓋(注意設置cookie的時候。不能一次設置多條cookie只能一次設置一條cookie的信息,若是後面設置了前面的同樣的字段,若是同域,同path,那麼後面會覆蓋前面的,否者新增一條cookie。設置到path以後,該cookie只能被該path及其如下的目錄獲取,好比我設置path=/web,那麼當我在/這個,目錄下的時候不能訪問到我設置到/webcookie,而我在/web/xxx這個目錄下能夠訪問獲得)
    • 過時時間:expires=時間/max-age=秒(不設置的話默認是臨時存儲)
  • 讀取cookie(注意通常只有當咱們含有http請求的時候設置cookie纔有效,不一樣瀏覽器狀況也不同,好比ie下就能夠直接設置),經過字符串分割。
  • 刪除cookie:已通過期(即便設置日期,保證日期小於當前日期)
相關文章
相關標籤/搜索