一、會(huì)話的概念
?? 會(huì)話就好比打電話,一次通話可以理解為一次會(huì)話。我們登錄一個(gè)網(wǎng)站,在一個(gè)網(wǎng)站上不同的頁面瀏覽,最后退出這個(gè)網(wǎng)站,也是一個(gè)會(huì)話。一個(gè)網(wǎng)站對(duì)于不同的用戶會(huì)展示出不同的頁面信息,但是在HTTP協(xié)議中,客戶端請(qǐng)求服務(wù)端是一種無狀態(tài)的連接-每次請(qǐng)求都是獨(dú)立的請(qǐng)求,服務(wù)器怎么分辨這些請(qǐng)求是哪個(gè)用戶發(fā)出的請(qǐng)求呢?
?? 如果不能分辨哪個(gè)用戶發(fā)出的請(qǐng)求,就不知道該反饋哪個(gè)用戶的信息回來,那試想我們登錄網(wǎng)站之后,顯示的都是別人的信息豈不亂套了。所以服務(wù)器需要知道發(fā)出請(qǐng)求的是誰,需要一個(gè)用戶標(biāo)識(shí)來保證會(huì)話的正常進(jìn)行。
二、Session的概念
??Session 是存放在服務(wù)器端的,類似于Session結(jié)構(gòu)來存放用戶數(shù)據(jù),當(dāng)瀏覽器 第一次發(fā)送請(qǐng)求時(shí),服務(wù)器自動(dòng)生成了一個(gè)Session和一個(gè)Session ID用來唯一標(biāo)識(shí)這個(gè)Session,并將其通過響應(yīng)發(fā)送到瀏覽器。當(dāng)瀏覽器第二次發(fā)送請(qǐng)求,會(huì)將前一次服務(wù)器響應(yīng)中的Session ID放在請(qǐng)求中一并發(fā)送到服務(wù)器上,服務(wù)器從請(qǐng)求中提取出Session ID,并和保存的所有Session ID進(jìn)行對(duì)比,找到這個(gè)用戶對(duì)應(yīng)的Session。
??由于Session存放在服務(wù)器端,所以隨著時(shí)間的推移或者用戶訪問的增多,會(huì)給服務(wù)器增加負(fù)擔(dān)。使用的時(shí)候要考慮下服務(wù)器的性能。
三、Cookie的概念
??Cookie實(shí)際上是一小段的文本信息??蛻舳苏?qǐng)求服務(wù)器,如果服務(wù)器需要記錄該用戶狀態(tài),就使用response向客戶端瀏覽器頒發(fā)一個(gè)Cookie??蛻舳藭?huì)把Cookie保存起來。
??由于Cookie是存放在客戶端,是可見的,安全性就會(huì)很低。因此不建議將一些重要的信息放在cookie中。
四、兩者的區(qū)別
?1、cookie數(shù)據(jù)存放在客戶端,session數(shù)據(jù)放在服務(wù)器上。
?2、cookie不是很安全,別人可以分析存放在本地的cookie并進(jìn)行cookie欺騙,考慮到安全應(yīng)當(dāng)使用session。
?3、session會(huì)在一定時(shí)間內(nèi)保存在服務(wù)器上,當(dāng)訪問增多,會(huì)比較占用你服務(wù)器的性能,考慮性能應(yīng)當(dāng)使用cookie。
?4、不同瀏覽器對(duì)cookie的數(shù)據(jù)大小限制不同,個(gè)數(shù)限制也不相同。
?5、可以考慮將登陸信息等重要信息存放為session,不重要的信息可以放在cookie中。
五、兩者的聯(lián)系
?1、都是用來記錄用戶的信息,以便讓服務(wù)器分辨不同的用戶。
?2、可以搭配使用,但都有自己的使用局限,要考慮到安全和性能的問題。
————————————————
版權(quán)聲明:本文為CSDN博主「無痕之意」的原創(chuàng)文章
原文鏈接:https://blog.csdn.net/kelinfeng16/article/details/82895866