自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一分鐘理解Session和Cookie的關(guān)系

開發(fā) 開發(fā)工具
你可能知道Session,還知道Cookie,但是卻不知道它們的“曖昧”關(guān)系。下面,就讓我們快速的理解Session和Cookie的關(guān)系。

假設(shè)一個場景:在 Session 中保存一個變量,用戶每請求一次變量增加 1,然后把最新的值以 HTML 的方式返回給客戶端。

用戶第一次請求,Web 服務(wù)器(或者應(yīng)用服務(wù)器,如 Tomcat)返回數(shù)字 1,那么此時 HTTP 傳輸已經(jīng)結(jié)束,TCP 經(jīng)歷四次揮手,連接關(guān)閉。

  • 當(dāng)頁面再次刷新時(TCP 重新連接,客戶端是新的端口)服務(wù)器端是如何知道用戶對應(yīng)的 Session 的?
  • 此時關(guān)閉瀏覽器 Session 是否會釋放?

[[234007]]

眾所周知 HTTP 是無狀態(tài)的協(xié)議,它的狀態(tài)管理機制是后來增補上去的,被記錄在rfc6265(HTTP State Management Mechanism)。具體方法很簡單:

  • 服務(wù)器端->客戶端增加一個新的返回頭部“Set-Cookie”,通過它設(shè)置一個 Key/Value 結(jié)構(gòu)的數(shù)據(jù);客戶端負(fù)責(zé)保存這個數(shù)據(jù)。
  • 客戶端->服務(wù)器端增加一個新的請求頭部“Cookie”,把保存的 Cookie(Key/Value 結(jié)構(gòu))提交給服務(wù)器端。

這個機制就是 Cookie,Session 機制是建立在 Cookie 機制之上的。對于 JavaEE 而言:

用戶請求的業(yè)務(wù)邏輯中出現(xiàn) Session 操作,并且本次請求沒有 JSESSIONID 的頭部被傳遞過來,服務(wù)器端會通過 Set-Cookie 設(shè)置上一個新的

當(dāng)用戶再次請求,Cookie 中包含了 JSESSIONID,服務(wù)器端會依據(jù)此判斷出用戶所屬的 Session

 

所以回到開始的兩個問題:

  • 服務(wù)器端通過讀取 Http 頭部 Cookie 部分 JSESSIONID 找到用戶所屬的 Session
  • 關(guān)閉瀏覽器只是 JSESSIONID 這個 Cookie 被刪除;服務(wù)器端的 Session 不會被刪除。刪除時間是通過session-timeout配置的

有一種網(wǎng)絡(luò)攻擊方法叫 Cookie/Session 欺騙,比如某管理員用戶登錄到系統(tǒng)了,如果我們趁他不在電腦旁邊的時候把他的 JSESSIONID 復(fù)制走;然后打開瀏覽器訪問相同的網(wǎng)址,通過瀏覽器設(shè)置上 JSESSIONID,再次刷新,你會發(fā)現(xiàn)已經(jīng)登錄成功了。也就是說服務(wù)器端其實只認(rèn) JSESSIONID,它甚至無法區(qū)分究竟有多少管理員“同時在線”。

【本文是51CTO專欄作者“邢森”的原創(chuàng)文章,轉(zhuǎn)載請聯(lián)系作者本人獲取授權(quán)】

戳這里,看該作者更多好文

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2018-07-31 16:10:51

Redo Undo數(shù)據(jù)庫數(shù)據(jù)

2017-02-21 13:00:27

LoadAverage負(fù)載Load

2018-06-26 05:23:19

線程安全函數(shù)代碼

2018-12-12 22:51:24

Java包裝語言

2018-06-28 14:00:01

分布式集群架構(gòu)

2017-03-30 19:28:26

HBase分布式數(shù)據(jù)

2020-05-21 19:46:19

區(qū)塊鏈數(shù)字貨幣比特幣

2017-07-06 08:12:02

索引查詢SQL

2022-07-18 06:16:07

單點登錄系統(tǒng)

2011-02-21 17:48:35

vsFTPd

2016-09-12 17:28:45

云存儲應(yīng)用軟件存儲設(shè)備

2020-07-09 07:37:06

數(shù)據(jù)庫Redis工具

2020-07-17 07:44:25

云計算邊緣計算IT

2020-10-13 14:55:31

云計算云安全技術(shù)

2018-07-31 15:05:51

Java公平鎖線程

2015-07-08 13:19:42

APM云智慧

2015-11-12 10:32:40

GitHub控制系統(tǒng)分布式

2016-12-16 11:05:00

分布式互斥線程

2018-03-27 09:28:33

緩存策略系統(tǒng)

2021-08-06 08:50:45

加密貨幣比特幣區(qū)塊鏈
點贊
收藏

51CTO技術(shù)棧公眾號