Session和Cookie的區別和聯絡

2022-08-24 13:54:11 字數 1907 閱讀 8463

1.  我們知道http是一種無狀態的協議,為了分辨鏈結是誰發起的,需自己去解決這個問題。而且一旦資料交換完畢,客戶端與伺服器端的連線就會關閉,再次交換資料需要建立新的連線。這就意味著伺服器無法從連線上跟蹤會話。導致有些情況下即使是同乙個**每開啟乙個頁面也都要登入一下。而session和cookie就是為解決這個問題而提出來的兩個機制。

2.  cookie

1.實際上是一小段的文字資訊是訪問某些**後在本地儲存的一些**相關資訊,下次訪問時減少一些步驟。更準確的說法是:cookies是伺服器在本地機器上儲存的小段文字資訊並隨每乙個請求傳送至同一伺服器,是在客戶端保持狀態的方案。

2.cookie的內容主要包括:名字,值,過期時間,路徑和域。路徑與域一起構成cookie的作用範圍。

3.會話cookie和持久cookie

若不設定過期時間,則表示這個cookie的生命期為瀏覽器會話期間,關閉瀏覽器視窗,cookie就消失。這種生命期為瀏覽器會話期的cookie被稱為會話cookie。會話cookie一般不儲存在硬碟上而是儲存在記憶體裡,當然這種行為並不是規範規定的。若設定了過期時間,瀏覽器就會把cookie儲存到硬碟上,關閉後再次開啟瀏覽器,這些cookie仍然有效直到超過設定的過期時間。儲存在硬碟上的cookie可以在瀏覽器的不同程序間共享。這種稱為持久cookie。

3.  session

1.它存在伺服器的一種用來存放使用者資料的類hashtable結構,是另一種記錄客戶狀態的機制,不同的是cookie儲存在客戶端瀏覽器中,而session儲存在伺服器上。客戶端瀏覽器訪問伺服器的時候,伺服器把客戶端資訊以某種形式記錄在伺服器上。這就是session。客戶端瀏覽器再次訪問時只需要從該session中查詢該客戶的狀態就可以了。

2.session的建立:當程式需要為某個客戶端的請求建立乙個session時,伺服器首先檢查這個客戶端的請求裡是否已包含了sessionid,如果已包含則說明以前已經為此客戶端建立過session,伺服器就按照sessionid把這個session檢索出來使用(檢索不到,會新建乙個),如果客戶端請求不包含sessionid,則為此客戶端建立乙個session並且生成乙個與此session相關聯的sessionid,sessionid的值是乙個既不會重複,又不容易被找到規律以仿造的字串,這個sessionid將被在本次響應中返回給客戶端儲存。

3.當伺服器為使用者建立一次會話,可以在使用者授權成功時給他乙個唯一的cookie。當乙個使用者提交了表單時,瀏覽器會將使用者的sessionid自動附加在http頭資訊中,伺服器通過sessionid作為key,讀寫到對應的value,這就達到了保持會話資訊的目的。

4.如果客戶端禁用了cookie,通常有兩種方法實現session而不依賴cookie:url重寫,就是把sessionid直接附加在url路徑的後面;表單隱藏字段。

5.session共享:對於多**(同一父域不同子域)單伺服器,我們需要解決的就是來自不同**之間sessionid的共享。由於網域名稱不同(aaa.test.com和bbb.test.com),而sessionid又分別儲存在各自的cookie中,因此伺服器會認為對於兩個子站的訪問,是來自不同的會話。解決的方法是通過修改cookies的網域名稱為父網域名稱達到cookie共享的目的,從而實現sessionid的共享。帶來的弊端就是,子站間的cookie資訊也同時被共享了。  

4.  cookie和session的區別   

1.cookie和session都是會話技術,cookie是執行在客戶端,session是執行在伺服器端。   

2.cookie有大小限制以及瀏覽器在存cookie的個數也有限制(單個cookie儲存的資料不能超過4k,很多瀏覽器都限制乙個站點最多儲存20個cookie),session是沒有大小限制和伺服器的記憶體大小有關。

3.cookie有安全隱患,通過攔截或本地檔案找得到你的cookie後可以進行攻擊。

4.session是儲存在伺服器端上會存在一段時間才會消失,如果session過多會增加伺服器的壓力。

Session和Cookie的區別

session和cookie的區別 1 儲存的位置不同 session儲存在伺服器端的記憶體中,占用伺服器資源。cookie是儲存在客戶端。可以是瀏覽器中或者是檔案中 2 儲存的時間不同 session是關閉當前會話相關瀏覽器後自動清空。cookie是根據過期時間而會有不同。3 安全性不同 sess...

cookie和session的區別

一 cookie機制和session機制的區別 具體來說cookie機制採用的是在客戶端保持狀態的方案,而session機制採用的是在伺服器端保持狀態的方案。同時我們也看到,由於在伺服器端保持狀態的方案在客戶端也需要儲存乙個標識,所以session機制可能需要借助於cookie機制來達到儲存標識的目...

cookie和session的區別

分類 計算機網路 2011 10 21 10 43 4785人閱讀收藏 舉報 session 瀏覽器伺服器 servlet url儲存 一 cookie機制和session機制的區別 具體來說cookie機制採用的是在客戶端保持狀態的方案,而session機制採用的是在伺服器端保持狀態的方案。同時我...