cookie和session實現狀態保持的區別

2021-09-29 16:12:29 字數 1160 閱讀 4172

web應用程式使用http協議作為傳輸資料的標準協議,而http協議是無狀態協議,即一次請求對應一次響應,響應結束後連線即斷開,同乙個使用者的不同請求對於伺服器端來講並不會認為這兩個請求有什麼關聯性,並不會以此區分不同的客戶端。但實際情況中還是需要伺服器端能夠區分不同的客戶端以及記錄與客戶端相關的一些資料,所以狀態管理能夠做到不同客戶端的身份識別。

cookie是伺服器傳送到使用者瀏覽器並儲存在本地的一小塊資料(最大4k),一般被加密,它會在瀏覽器下次向同一伺服器再發起請求時被攜帶併發送到伺服器上。

乙個cookie擁有如下屬性:

name:確定乙個cookie。路徑可能不同

value:不能存中文

可選屬性:比如注釋、路徑和域限定符

過期時間

版本號

工作原理:

瀏覽器第一次訪問**,伺服器會生成cookie並傳送給瀏覽器

瀏覽器儲存cookie資訊

瀏覽器再次訪問**,會攜帶相應的cookie

伺服器驗證cookie

session 代表著伺服器和客戶端一次會話的過程。session 物件儲存特定使用者會話所需的屬性及配置資訊。這樣,當使用者在應用程式的 web 頁之間跳轉時,儲存在 session 物件中的變數將不會丟失,而是在整個使用者會話中一直存在下去。當客戶端關閉會話,或者 session 超時失效時會話結束。

session也是key--value型,與cookie區別在於cookie的key--value都儲存在客戶端,而session則將value儲存在伺服器上。另外,value可以儲存更複雜的資料比如物件等資訊。

工作原理:

瀏覽器第一次訪問**,伺服器會生成session的key--value,並且儲存在伺服器乙份(集群、記憶體、資料庫、檔案都可以),key則以cookie的方式返回給瀏覽器

瀏覽器儲存session的key

瀏覽器再次訪問**,會攜帶相應的key

伺服器通過key查詢value是否存在來驗證合法性

cookie和session和token是什麼?

什麼是session?什麼是cookie?什麼是token?1 cookie?由於http是一種無狀態協議,伺服器沒有辦法單單從網路連線上面知道訪問者的身份,為了解決這個問題,就誕生了cookie cookie實際上是一小段的4k文字資訊。客戶端請求伺服器,如果伺服器需要記錄該使用者狀態,就使用re...

Session和Cookie的區別

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

cookie和session的區別

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