網路中的cookie和session的區別

2021-12-29 19:39:10 字數 1478 閱讀 1152

一、cookie機制和session機制的區別

具體來說cookie機制採用的是在客戶端保持狀態的方案,而session機制採用的是在伺服器端保持狀態的方案。

採用伺服器端保持狀態的方案在客戶端也需要儲存乙個標識,所以session機制可能要借助於cookie機制來達到儲存標識的目的,但也可以使用其他方法。

cookie的內容包括:名字,值,過期時間,路徑和域。路徑和域一起構成了cookie的作用範圍。如果不設定過期時間,則表示這個cookie的生命週期為瀏覽器的會話期間,關閉瀏覽器視窗,cookie就消失。這種生命週期為瀏覽器會話期的cookie被稱為會話cookie。會話cookie一般不儲存在硬碟上而是儲存在記憶體中。

如果cookie設定了過期時間,瀏覽器就會把cookie儲存到硬碟上,關閉瀏覽器後再開啟,這些cookie仍然有效直到超過設定的過期時間。儲存在硬碟上的cookie可以在不同的瀏覽器程序間共享,比如兩個ie視窗。儲存在記憶體中的cookie,不同的瀏覽器有不同的處理方式。

session機制:session機制是一種伺服器端的機制,伺服器使用一種類似雜湊表的結構來儲存資訊。當程式需要為某個客戶端的請求建立乙個session時,伺服器首先檢查這個客戶端的請求裡是否已經包含了乙個session標識(session id),如果已經包含則說明以前已經為此客戶端建立過session,伺服器就按照session id把這個session檢索出來使用(檢索不到則新建立乙個),如果客戶端請求不包含session id,則為此客戶端建立乙個session並且生成乙個與此session相關聯的session

id,session id的值應該是乙個既不會重複,又不容易被找到規律以防止偽造的字串,這個session id將被在本次響應中返回給客戶端儲存。儲存這個session id的方式可以採用cookie,這使得在互動過程中瀏覽器可以自動的按照規則把這個標識傳送給伺服器。一般這個cookie的名字都是類似與seesionid,但是cookie可以被人為的禁止,那麼此時會採用其他方式來吧session id傳遞歸伺服器。

url重寫:把session id直接附加在url路徑的後面。

表單隱藏字段:伺服器自動修改表單,新增乙個隱藏字段,以便於在表單提交時能夠把session id傳遞歸伺服器。

cookie和session的區別

1、cookie資料儲存在客戶端,伺服器能夠知道其中的資訊,session資料放在伺服器上,客戶端不知道其中的資訊。

2、cookie不是很安全,別人可以分析存放在本地上的cookie並進行cookie欺騙。

3、session 會在一定時間內儲存在伺服器上。當訪問增多,會比較占用伺服器效能。

4、單個cookie儲存的資料不能超過4k,很多瀏覽器都限制乙個站點最多儲存20個cookie。

5、session中儲存的是物件,而cookie中儲存的是字串。

6、session不能區分路徑,同乙個使用者在訪問乙個**期間,所有的session在任何乙個地方都可以訪問到。而cookie中如果設定了路徑引數,那麼同乙個**中不同路徑下的cookie互相是訪問不到的。

Python爬蟲之Cookie和Session

關於cookie和session估計很多程式設計師面試的時候都會被問到,這兩個概念在寫web以及爬蟲中都會涉及,並且兩者可能很多人直接回答也不好說的特別清楚,所以整理這樣一篇文章,也幫助自己加深理解 其實簡單的說就是當使用者通過http協議訪問乙個伺服器的時候,這個伺服器會將一些name value...

Django框架之Cookie和Session元件

cookie是伺服器傳送到使用者瀏覽器並儲存在本地的一小塊資料,它會在瀏覽器下次向同一伺服器再發起請求時被攜帶併發送到伺服器上。通常,它用於告知服務端兩個請求是否來自同一瀏覽器,如保持使用者的登入狀態。cookie 使基於無狀態的 http 協議記錄穩定的狀態資訊成為了可能。1 會話狀態管理 如使用...

資料的兩種儲存方式 cookie和session

一 什麼是cookie 1 cookie是在服務端建立 2 cooki是儲存在瀏覽器這一端 3 cookie的生命週期可以通過 cookie.setmaxage 2000 如果不設定生命週期,cookie的生命週期當瀏覽器關閉時就消亡 4 cooki可以被多個瀏覽器共享 5 乙個web應用可以儲存多...