突然感覺對這個熟悉又陌生的東西不是很理解,於是查了半天資料,發現都是定義說一通,用法場景說一通,都沒有說明白,他倆是怎麼一回事。
還得自己想辦法。我就不說定義一類的了,多餘。
1、首先要對他們的結構有所認識,cookie:
可以看到是以分號隔開的key:value形式的資料 。由此得知,客戶端cookie是乙個陣列型別的物件。
2、服務端獲取瀏覽器傳過來的cookie:
3、客戶端的cookie內容是由服務端返回的,內容可加可減
4、session的作用是把專案當中一些常用的資訊存在記憶體當中,這些常用的資訊通常是跟使用者相關的,比如使用者名稱,使用者暱稱,使用者角色等,同時session本身會有乙個id,類似於表中的主鍵id,這個很關鍵。
5、session和cookie到底有什麼關係呢?
每乙個session物件都有乙個sessionid,而在cookie陣列中,又乙個元素叫做jsessionid,伺服器將session物件的sessionid,以名稱叫做jsessionid,值為sessionid的形式存入cookie陣列中,這樣cookie和session就發生了關聯。
6、應用:第一次請求服務端,驗證使用者資訊,成功後,將使用者名稱等常用資訊儲存在session中,同時新增乙個cookie返回至瀏覽器,下次再訪問時,伺服器取到jsessionid然後和服務端中進行比對,比對成功則通過,沒有取到,則說明未登入,需要重新登入。
參考:
cookie與session的關聯
前提 cookie沒有被禁用。當用瀏覽器登入到某 伺服器時,先找對應的cookie檔案,當首次訪問是當然沒有cookie檔案,所以在請求頭部中沒有cookie的內容,即在請求頭部中沒有類似cookie jsessionid 的內容,這時當請求到達伺服器後,伺服器看請求頭中沒有jsessionid值,...
session與cookie的區別
讓我們用幾個例子來描述一下cookie和session機制之間的區別與聯絡。筆者曾經常去的一家咖啡店有喝5杯咖啡免費贈一杯咖啡的優惠,然而一次性消費5杯咖啡的機會微乎其微,這時就需要某種方式來紀錄某位顧客的消費數量。想象一下其實也無外乎下面的幾種方案 1 該店的店員很厲害,能記住每位顧客的消費數量,...
session與cookie的區別
1 session儲存在伺服器,客戶端不知道其中的資訊 cookie儲存在客戶端,伺服器能夠知道其中的資訊。2 session中儲存的是物件,cookie中儲存的是字串。3 session不能區分路徑,同乙個使用者在訪問乙個 期間,所有的session在任何乙個地方都可以訪問到。而cookie中如果...