cookie和session的聯絡

2021-10-02 09:49:51 字數 1480 閱讀 1222

1.1 簡介

cookie主要是客戶端(瀏覽器)進行資料儲存的一種形式。當瀏覽器在發起請求的時候(不考慮跨域),會自動攜帶關聯的cookie資訊到後端。cookie前後端都可以進行設定。

後端cookie的設定主要是在響應頭中設定set-cookie欄位,並設定cookie相關的屬性項資訊,瀏覽器在讀取到響應頭中的set-cookie時,會自動將資訊儲存到cookie中。

後端設定**如下:

1.2 cookie屬性項

httponly:為true,表示瀏覽器只能通過http請求,訪問該cookie,無法通過js對cookie進行讀取、修改、刪除等操作

1.3 瀏覽器載入cookie規則

瀏覽器載入cookie的匹配規則: 將請求的url路徑與cookie的domain + path 進行匹配, 符合匹配規則的cookie,都將被設定到請求頭的cookie欄位裡面,如果存在多個相同的cookie名稱,則匹配的精確度越高(先domain,在path),該cookie就設定的越靠前(多個相同的cookie,則tomcat只讀取第乙個)。

假設發起乙個請求www.baidu.com/news,則載入cookie的規則如下

「.baidu.com + / " : 表示請求的資源,網域名稱是以baidu.com結尾的,都可以訪問該cookie

「www.baidu.com + /」: 表示請求的資源,網域名稱是www.baidu.com的,都可以訪問該cookie,即請求格式為:「www.baidu.com/***」

「.baidu.com + /news」 : 表示請求的資源,網域名稱是以baidu.com結尾的,路徑是/news開頭的,都可以訪問該cookie,即請求格式為:「***.baidu.com/news/***」

「www.baidu.com + /news」: 表示請求的資源,網域名稱是www.baidu.com,路徑是/news開頭的,都可以訪問該cookie

其中,匹配精確度先domain,在path,因此,匹配精確度由高到第分別是:「www.baidu.com + /news」,「www.baidu.com + / 「,」.baidu.com + /news」,」.baidu.com + /"

由於http請求是無狀態的,因此,每次訪問伺服器並不知道是否是已登入的使用者。session可以儲存使用者的登入資訊,當下乙個請求攜帶jsessionid過來時,通過jsessionid就可以查詢到上一次請求的session資訊,從而判斷是否已經登入過。

伺服器通過在響應頭中設定set-cookie欄位將jsessionid返回給瀏覽器,瀏覽器將其儲存到cookie中。當再次發起請求時,則瀏覽器將攜帶jsessionid資訊到伺服器,伺服器通過jsessionid查詢對應的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機制採用的是在伺服器端保持狀態的方案。同時我...