session、cookie、sessionStorage、localStorage的簡要理解

1、cookie和session

  首先 session 和 cookie 用於瀏覽器客戶端與服務端數據交互,經過會話的方式跟蹤瀏覽器用戶身份。html

一、cookie

  (1)、通常由服務器生成,能夠設置失效時間,若是是瀏覽器生成則默認瀏覽器關閉後失效;html5

  (2)、與服務器端通訊,每次請求都放在 http 請求頭中;web

  (3)、數據存儲在內存中,數據大小爲4KB,保存在類型爲字符串;api

二、session

   sessioncookie的做用有點相似,都是爲了存儲用戶相關的信息。不一樣的是,cookie是存儲在本地瀏覽器,而session存儲在服務器。存儲在服務器的數據會更加的安全,不容易被竊取。但存儲在服務器也有必定的弊端,就是會佔用服務器的資源,但如今服務器已經發展至今,一些session信息仍是綽綽有餘的。瀏覽器

3. session和cookie的結合使用

  web開發發展至今,cookiesession的使用已經出現了一些很是成熟的方案。在現在的市場或者企業裏,通常有兩種存儲方式:安全

 

1)、存儲在服務端:經過cookie存儲一個session_id,而後具體的數據則是保存在session中。若是用戶已經登陸,則服務器會在cookie中保存一個session_id,下次再次請求的時候,會把該session_id攜帶上來,服務器根據session_idsession庫中獲取用戶的session數據。就能知道該用戶究竟是誰,以及以前保存的一些狀態信息。這種專業術語叫作server side session服務器

 

2)、將session數據加密,而後存儲在cookie中。這種專業術語叫作client side session
cookie

 

2、WebStorage

  HTML5的WebStorage提供了兩種API: localStorage(本地存儲)和sessionStorage(會話存儲)

一、生命週期:

  localStorage的生命週期是永久的,關閉頁面或瀏覽器以後localStorage中的數據也不會消失。localStorage除非主動刪除數據,不然數據永遠不會消失。
  sessionStorage的生命週期是在僅在當前會話下有效。sessionStorage引入了一個「瀏覽器窗口」的概念,sessionStorage是在同源的窗口中始終存在的數據。只要這個瀏覽器窗口沒有關閉,即便刷新頁面或者進入同源另外一個頁面,數據依然存在。可是sessionStorage在關閉了瀏覽器窗口後就會被銷燬。同時獨立的打開同一個窗口同一個頁面,sessionStorage也是不同的。網絡

二、存儲大小:

  localStorage和sessionStorage的存儲數據大小通常都是:5MBsession

三、存儲位置:

  localStorage和sessionStorage都保存在客戶端,不與服務器進行交互通訊。

四、存儲類型:  

  localStorage和sessionStorage只能存儲字符串類型,對於複雜的對象可使用ECMAScript提供的JSON對象的stringify和parse來處理

WebStorage因爲不會傳送到服務器,因此更安全,也能節省網絡流量,存儲數據也比cookie要大,存儲在本地也使得讀取數據更快,由於存在僞造問題,不建議存儲敏感信息

每日壹題:

  var 、let 、const 區別?

  • var 和 let 用以聲明變量,const 用於聲明只讀的常量;
  • var 聲明的變量,不存在塊級做用域,在全局範圍內都有效,let 和 const 聲明的,只在它所在的代碼塊內有效;
  • let 和 const 不存在像 var 那樣的 「變量提高」 現象,因此 var 定義變量能夠先使用,後聲明,而 let 和 const 只可先聲明,後使用;
  • let 聲明的變量存在暫時性死區,即只要塊級做用域中存在 let,那麼它所聲明的變量就綁定了這個區域,再也不受外部的影響;
  • let 不容許在相同做用域內,重複聲明同一個變量;
  • const 在聲明時必須初始化賦值,一旦聲明,其聲明的值就不容許改變,更不容許重複聲明;
相關文章
相關標籤/搜索