cookie和session的區別

————— --- 圖片描述 --- ——————web

相信 如今的程序猿對 "cookie" 和 "session" 應該都很是熟悉也有本身的理解思路 下面呢我介紹一些本身有關於 : "cookie" 和 "session" 的一些相關知識看法 望能幫助須要瞭解與幫助的程序猿們 ……

還有:sessionStorage、localStorage和cookie的區別 等等……

cookie和session的區別

  • cookie數據存放在客戶的瀏覽器上,session數據放在服務器上api

  • cookie不是很安全,別人能夠分析存放在本地的cookie並進行cookie欺騙,考慮*到安全應當使用session瀏覽器

  • session會在必定時間內保存在服務器上,當訪問增多,會比較佔用你服務器的性能,考慮到減輕服務器性能方面,應當使用cookie安全

  • 單個cookie保存的數*據不能超過4K,不少瀏覽器都限制一個站點最多保存20個cookie服務器

  • 建議將登陸信息等重要信息存放爲session,其餘信息若是須要保留,能夠放在cookie中cookie

  • session保存在服務器,客戶端不知道其中的信心;cookie保存在客戶端,服務器可以知道其中的信息session

  • session中保存的是對象,cookie中保存的是字符串性能

  • session不能區分路徑,同一個用戶在訪問一個網站期間,全部的session在任何一個地方均可以訪問到,而cookie中若是設置了路徑參數,那麼同一個網站中不一樣路徑下的cookie互相是訪問不到的網站

使用jQuery操做Cookies

Cookies是一種可以讓網站服務器把少許數據儲存到客戶端的硬盤或內存,或是從客戶端的硬盤讀取數據的一種技術。當你瀏覽某網站時,你硬盤上會生產一個很是小的文本文件,它能夠記錄你的用戶ID、密碼、瀏覽過的網頁、停留的時間等信息。spa

當你再次來到該網站時,網站經過讀取Cookies,得知你的相關信息,就能夠作出相應的動做,如在頁面顯示歡迎你的標語,或者讓你不用輸入ID、密碼就直接登陸等等。從本質上講,它能夠看做是你的身份證。

建立Cookie

使用jQuery設置cookie很是簡單。如,咱們建立一個名爲「example」,值爲「foo」的cookie:

$.cookie("example", "foo");

要設置cookie的有效期,能夠設置expires值,如設置cookie的過時時間爲10天:

$.cookie("example", "foo",{expires:10});

設置cookie一小時後過時:

var cookietime = new Date(); 
    
    cookietime.setTime(date.getTime() + (60 * 60 * 1000));//coockie保存一小時    
    
    $.cookie("example", "foo",{expires:cookietime});

要設置cookie的保存路徑,能夠設置path值,如設置路徑爲根目錄:

$.cookie("example", "foo",{path:"/"});

若是要設置路徑爲/admin,則:

$.cookie("example", "foo",{path:"/admin"});

獲取cookie值

使用jQuery獲取cookie的值的方法那是至關的簡單,下面是彈出框顯示名爲「example」的cookie的值:

alert($.cookie("example"));

刪除Cookie

使用jQuery刪除cookie,只須要將cookie的值爲null,注意若是設置值爲空的字符串時,並不能刪除cookie,只是將cookie值清空而已。

$.cookie("example",null);

localStorage,sessionStorage和cookie的區別

共同點:都是保存在瀏覽器端、且同源的
區別:

  • cookie數據始終在同源的http請求中攜帶(即便不須要),即cookie在瀏覽器和服務器間來回傳遞,而sessionStorage和localStorage不會自動把數據發送給服務器,僅在本地保存。cookie數據還有路徑(path)的概念,能夠限制cookie只屬於某個路徑下

  • 存儲大小限制也不一樣,cookie數據不能超過4K,同時由於每次http請求都會攜帶cookie、因此cookie只適合保存很小的數據,如會話標識。sessionStorage和localStorage雖然也有存儲大小的限制,但比cookie大得多,能夠達到5M或更大

  • 數據有效期不一樣,sessionStorage:僅在當前瀏覽器窗口關閉以前有效;localStorage:始終有效,窗口或瀏覽器關閉也一直保存,所以用做持久數據;cookie:只在設置的cookie過時時間以前有效,即便窗口關閉或瀏覽器關閉

  • 做用域不一樣,sessionStorage不在不一樣的瀏覽器窗口中共享,即便是同一個頁面;localstorage在全部同源窗口中都是共享的;cookie也是在全部同源窗口中都是共享的

  • web Storage支持事件通知機制,能夠將數據更新的通知發送給監聽者

  • web Storage的api接口使用更方便

sessionStorage與頁面js數據對象的區別

頁面中通常的js對象的生存期僅在當前頁面有效,所以刷新頁面或轉到另外一頁面這樣的從新加載頁面的狀況,數據就不存在了

而sessionStorage只要同源的同學口中,刷新頁面或進入同源的不一樣頁面,數據始終存在,也就是說只要瀏覽器不關閉,數據仍然存在

盡情期待   其餘相關技術的更新發布   ……
  
  
  
                                                          :搜狗搜到你丶
相關文章
相關標籤/搜索