session和cookie的詳解

2021-10-05 05:27:56 字數 2336 閱讀 1196

會話就是客戶端和服務端互動的過程,cp的三次握手就建立了乙個會話,tcp關閉連線就是關閉會話。

cookie實際上是一小段的文字資訊。客戶端請求伺服器,如果伺服器需要記錄該使用者狀態,就使用response向客戶端瀏覽器頒發乙個cookie。客戶端瀏覽器會把cookie儲存起來。當瀏覽器再請求該**時,瀏覽器把請求的**連同該cookie一同提交給伺服器。伺服器檢查該cookie,以此來辨認使用者狀態。伺服器還可以根據需要修改cookie的內容。

cookie具有不可跨網域名稱性。根據cookie規範,瀏覽器訪問google只會攜帶google的cookie,而不會攜帶baidu的cookie。google也只能操作google的cookie,而不能操作baidu的cookie

這個cookie的唯一目的就是為每乙個使用者提供不同的身份認證。

cookie特點:

1、cookie的資料存在客戶端,未設定有效期,則儲存在計算機記憶體中,設定了有效期,則儲存在硬碟中。

2、cookie較session安全性更低,可以通過解析本地的cookie檔案進行cookie欺騙

3、若不設定過期時間,則表示這個cookie的生命期為瀏覽器會話期間,關閉瀏覽器視窗,cookie就消失。這種生命期為瀏覽器會話期的cookie被稱為會話cookie。同樣,cookie也可以設定有效期,設定了有效期的cookie不會隨著瀏覽器的關閉而消失,而是到了有效期才會消失

cookie的內容主要包括:名字,值,過期時間,路徑和域。路徑與域一起構成cookie的作用範圍。

cookie不能跨瀏覽器,新開的視窗會重新建立新的cookie,但是子視窗不會重新建立cookie

session是另一種記錄客戶狀態的機制,不同的是cookie儲存在客戶端瀏覽器中,而session儲存在伺服器上。客戶端瀏覽器訪問伺服器的時候,伺服器把客戶端資訊以某種形式記錄在伺服器上。這就是session。客戶端瀏覽器再次訪問時只需要從該session中查詢該客戶的狀態就可以了。每個使用者訪問伺服器都會建立乙個session,那伺服器是怎麼標識使用者的唯一身份呢?事實上,使用者與伺服器建立連線的同時,伺服器會自動為其分配乙個sessionid。

1、資料儲存位置:cookie資料存放在客戶的瀏覽器上,session資料放在伺服器上。

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

3、伺服器效能:session會在一定時間內儲存在伺服器上。當訪問增多,會比較占用你伺服器的效能,考慮到減輕伺服器效能方面,應當使用cookie。

4、資料大小:單個cookie儲存的資料不能超過4k,很多瀏覽器都限制乙個站點最多儲存20個cookie。

5、資訊重要程度:可以考慮將登陸資訊等重要資訊存放為session,其他資訊如果需要保留,可以放在cookie中

(1)cookie的生命週期是累計的,從建立時,就開始計時,20分鐘後,cookie生命週期結束,

(2)session的生命週期是間隔的,從建立時,開始計時如在20分鐘,沒有訪問session,那麼session生命週期被銷毀

但是,如果在20分鐘內(如在第19分鐘時)訪問過session,那麼,將重新計算session的生命週期

(3)關機會造成session生命週期的結束,但是對cookie沒有影響

第一次握手:客戶端傳送syn包(seq=x)到伺服器,並進入syn_send狀態,等待伺服器確認;

第二次握手:伺服器收到syn包,必須確認客戶的syn(ack=x+1),同時自己也傳送乙個syn包(seq=y),即syn+ack包,此時伺服器進入syn_recv狀態;

第三次握手:客戶端收到伺服器的syn+ack包,向伺服器傳送確認包ack(ack=y+1),此包傳送完畢,客戶端和伺服器進入established狀態,完成三次握手。

握手過程中傳送的包裡不包含資料,三次握手完畢後,客戶端與伺服器才正式開始傳送資料。理想狀態下,tcp連線一旦建立,在通訊雙方中的任何一方主動關閉連線之前,tcp 連線都將被一直保持下去。

第一次揮手:主動關閉方傳送乙個fin,用來關閉主動方到被動關閉方的資料傳送,也就是主動關閉方告訴被動關閉方:我已經不會再給你發資料了(當 然,在fin包之前傳送出去的資料,如果沒有收到對應的ack確認報文,主動關閉方依然會重發這些資料),但此時主動關閉方還可以接受資料。

第二次揮手:被動關閉方收到fin包後,傳送乙個ack給對方,確認序號為收到序號+1(與syn相同,乙個fin占用乙個序號)。

第三次揮手:被動關閉方傳送乙個fin,用來關閉被動關閉方到主動關閉方的資料傳送,也就是告訴主動關閉方,我的資料也傳送完了,不會再給你發資料了。

第四次揮手:主動關閉方收到fin後,傳送乙個ack給被動關閉方,確認序號為收到序號+1,至此,完成四次揮手。

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機制採用的是在伺服器端保持狀態的方案。同時我...