cookie&session&localStorage

寫以前轉載兩篇寫的很棒的文章先看看:Session和Cookie
Session和Cookiecss

一:cookie

一、定義:

cookie是存儲在瀏覽器上的一小段數據,用來記錄某些當頁面關閉或者刷新後仍然須要記錄的信息html

二、大小:

通常瀏覽器存儲cookie 最大容量爲4knode

三、cookie的特徵:

每次網絡請求 Request headers 中都會帶上cookie。因此若是 cookie 太多太大對傳輸效率會有影響。git

clipboard.png

四、查看cookie的路徑

經過打開網頁,點擊檢查,找到application,找到storage,就找到了cookie!github

clipboard.png

五、cookie的來源

在解析cookie以前,咱們先作一個小實驗,找到cookie後點擊右鍵清除cookie,
clipboard.png
但當我從新刷新一遍網頁,cookie又出現了,why?
clipboard.pngweb

來源:數據庫

咱們點擊network-name/html-header,會發現咱們請收請求的響應體裏面有一個setcookie的東西,它能夠把cookie種植到瀏覽器。
當瀏覽器發送的請求沒有cookie時,服務器會把響應頭裏面放入setcookie,瀏覽器接受setcookie以後,會把內容種植到瀏覽器的cookie內部,以後向服務器發送的請求就都會帶cookie了。
clipboard.png瀏覽器

五、主要參數:性能優化

  1. name
  2. value 字符串
  3. domain做用域
  4. expires/max-age 有效期
  5. secure是否在http裏面有效(當 secure 值爲 true 時,cookie 在 HTTP 中是無效,在 HTTPS 中才有效)
  6. httponly是否容許經過js修改cookie,爲true不容許

六、做用:

cookie能夠看一下方方老師寫的這篇博客簡述 Cookie 是什麼服務器

  • 記錄用戶信息,cookie有個地方放用戶名
  • 記錄歷史信息

2、session

一、定義:

session是一種讓服務器能識別某個用戶的「機制」,session 在實現的過程當中須要使用cookie

二、使用:

  1. 用戶在輸入用戶名密碼提交給服務端,服務端驗證經過後會建立一個session用於記錄用戶的相關信息
  2. 建立session後,會把關聯的session_id 經過setCookie 添加到http響應頭部中。
  3. 瀏覽器在加載頁面時發現響應頭部有 set-cookie字段,就把這個cookie 種到瀏覽器指定域名下。
  4. 當下次刷新頁面時,發送的請求會帶上這條cookie, 服務端在接收到後根據這個session_id來識別用戶。

三、 session 可保存在服務器內存中,也可保存在數據庫中,只是id在cookie中

三:localStorage

一、定義:

localStorage HTML5本地存儲web storage特性的API之一,用於將大量數據(最大5M)保存在瀏覽器中,保存後數據永遠存在不會失效過時,除非用 js手動清除。
不參與網絡傳輸。
通常用於性能優化,能夠保存圖片、js、css、html 模板、大量數據。

二、js手動修改

注意value裏面存的是字符串,若是寫入對象,就會轉換成字符串[objectobject]
clipboard.png
因此要用JSON.stringify轉成字符串再傳
clipboard.png

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息