'Cookie與Session的區別'

瀏覽器 技術 HTML 電腦 標記語言 華清遠見武漢中心 2019-09-02
"
"
Cookie與Session的區別

引言:

在計算機通信網絡中,網絡協議是必不可少。其中超文本傳輸協議(HTTP)是一種通信協議,它允許將超文本標記語言(HTML)文檔從Web服務器傳送到客戶端的瀏覽器。

然而HTTP協議是無狀態的協議。一旦數據交換完畢,客戶端與服務器端的連接就會關閉,再次交換數據需要建立新的連接。這就意味著服務器無法從連接上跟蹤用戶登錄網站後的一系列動作,這一系列動作我們稱之為會話,比如瀏覽商品添加到購物車併購買。

會話跟蹤是Web程序中常用的技術,用來跟蹤用戶的整個會話。常用的會話跟蹤技術是Cookie與Session。在這篇博客裡,我們來看看這兩個技術的區別。

Cookie:

Cookie實際上是一小段的文本信息。在客戶端請求服務器時,如果服務器需要記錄該用戶狀態,如用戶信息等,就使用response對象向客戶端瀏覽器頒發一個Cookie。客戶端會把Cookie保存起來。當瀏覽器再請求該網站時,瀏覽器把請求的網址連同該Cookie一同提交給服務器。服務器檢查該Cookie,以此來辨認用戶狀態。工作原理如下:

"
Cookie與Session的區別

引言:

在計算機通信網絡中,網絡協議是必不可少。其中超文本傳輸協議(HTTP)是一種通信協議,它允許將超文本標記語言(HTML)文檔從Web服務器傳送到客戶端的瀏覽器。

然而HTTP協議是無狀態的協議。一旦數據交換完畢,客戶端與服務器端的連接就會關閉,再次交換數據需要建立新的連接。這就意味著服務器無法從連接上跟蹤用戶登錄網站後的一系列動作,這一系列動作我們稱之為會話,比如瀏覽商品添加到購物車併購買。

會話跟蹤是Web程序中常用的技術,用來跟蹤用戶的整個會話。常用的會話跟蹤技術是Cookie與Session。在這篇博客裡,我們來看看這兩個技術的區別。

Cookie:

Cookie實際上是一小段的文本信息。在客戶端請求服務器時,如果服務器需要記錄該用戶狀態,如用戶信息等,就使用response對象向客戶端瀏覽器頒發一個Cookie。客戶端會把Cookie保存起來。當瀏覽器再請求該網站時,瀏覽器把請求的網址連同該Cookie一同提交給服務器。服務器檢查該Cookie,以此來辨認用戶狀態。工作原理如下:

Cookie與Session的區別

1. 客戶端第一次向服務器發起請求

2. 服務器準備一個cookie,將需緩存的內容設置到cookie中

3. 服務器將請求響應結果與cookie一起回饋給客戶端

4. 客戶端處理請求的響應與讀取cookie

5. 客戶端再次向服務器發送請求

6. 服務器檢查傳來的cookie,辨認狀態,並返回響應結果

Session:

Session是另一種記錄客戶狀態的機制,不同的是Cookie保存在客戶端瀏覽器中,而Session保存在服務器上。

客戶端瀏覽器訪問服務器的時候,服務器把客戶端信息以某種形式記錄在服務器上。當客戶端瀏覽器再次訪問時只需要從該Session中查找該客戶的狀態就可以了。

每個用戶訪問服務器都會建立一個session,那服務器是怎麼標識用戶的唯一身份呢?事實上,用戶與服務器建立連接的同時,服務器會自動為其分配一個SessionId。工作原理如下:

"
Cookie與Session的區別

引言:

在計算機通信網絡中,網絡協議是必不可少。其中超文本傳輸協議(HTTP)是一種通信協議,它允許將超文本標記語言(HTML)文檔從Web服務器傳送到客戶端的瀏覽器。

然而HTTP協議是無狀態的協議。一旦數據交換完畢,客戶端與服務器端的連接就會關閉,再次交換數據需要建立新的連接。這就意味著服務器無法從連接上跟蹤用戶登錄網站後的一系列動作,這一系列動作我們稱之為會話,比如瀏覽商品添加到購物車併購買。

會話跟蹤是Web程序中常用的技術,用來跟蹤用戶的整個會話。常用的會話跟蹤技術是Cookie與Session。在這篇博客裡,我們來看看這兩個技術的區別。

Cookie:

Cookie實際上是一小段的文本信息。在客戶端請求服務器時,如果服務器需要記錄該用戶狀態,如用戶信息等,就使用response對象向客戶端瀏覽器頒發一個Cookie。客戶端會把Cookie保存起來。當瀏覽器再請求該網站時,瀏覽器把請求的網址連同該Cookie一同提交給服務器。服務器檢查該Cookie,以此來辨認用戶狀態。工作原理如下:

Cookie與Session的區別

1. 客戶端第一次向服務器發起請求

2. 服務器準備一個cookie,將需緩存的內容設置到cookie中

3. 服務器將請求響應結果與cookie一起回饋給客戶端

4. 客戶端處理請求的響應與讀取cookie

5. 客戶端再次向服務器發送請求

6. 服務器檢查傳來的cookie,辨認狀態,並返回響應結果

Session:

Session是另一種記錄客戶狀態的機制,不同的是Cookie保存在客戶端瀏覽器中,而Session保存在服務器上。

客戶端瀏覽器訪問服務器的時候,服務器把客戶端信息以某種形式記錄在服務器上。當客戶端瀏覽器再次訪問時只需要從該Session中查找該客戶的狀態就可以了。

每個用戶訪問服務器都會建立一個session,那服務器是怎麼標識用戶的唯一身份呢?事實上,用戶與服務器建立連接的同時,服務器會自動為其分配一個SessionId。工作原理如下:

Cookie與Session的區別

1. 客戶端第一次向服務器發起請求

2. 服務器創建一個新的Session,生成sessionid,並把這次請求的信息放入到session中

3. 服務器將生成的sessionid放在一個cookie中與響應一起返回給客戶端瀏覽器

4. 客戶端再次訪問改網頁,將瀏覽器中存儲的sessionid發送到服務器中

把該sessionid與所有的session進行比較,找到對應的sessionid,並將內容取出

Cookie與Session的區別:

綜合上述Cookie與Session的工作原理,我們很容易看出Cookie與Session的區別。

1. cookie數據存放在客戶的瀏覽器上,session數據放在服務器上。

2. cookie不是很安全,別人可以分析存放在本地的cookie並進行cookie欺騙,考慮到安全應當使用session。

3. session會在一定時間內保存在服務器上。當訪問增多,會比較佔用你服務器的性能,考慮到減輕服務器性能方面,應當使用cookie。

4. 單個cookie保存的數據不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie。

5. 可以考慮將登陸信息等重要信息存放為session,其他信息如果需要保留,可以放在cookie中。

"

相關推薦

推薦中...