一、會話的概念
?? 會話就好比打電話桃移,一次通話可以理解為一次會話屋匕。我們登錄一個網(wǎng)站,在一個網(wǎng)站上不同的頁面瀏覽借杰,最后退出這個網(wǎng)站过吻,也是一個會話。一個網(wǎng)站對于不同的用戶會展示出不同的頁面信息蔗衡,但是在HTTP協(xié)議中纤虽,客戶端請求服務端是一種無狀態(tài)的連接-每次請求都是獨立的請求,服務器怎么分辨這些請求是哪個用戶發(fā)出的請求呢绞惦?
?? 如果不能分辨哪個用戶發(fā)出的請求廓推,就不知道該反饋哪個用戶的信息回來,那試想我們登錄網(wǎng)站之后翩隧,顯示的都是別人的信息豈不亂套了樊展。所以服務器需要知道發(fā)出請求的是誰,需要一個用戶標識來保證會話的正常進行堆生。
二专缠、Session的概念
??Session 是存放在服務器端的,類似于Session結構來存放用戶數(shù)據(jù)淑仆,當瀏覽器 第一次發(fā)送請求時涝婉,服務器自動生成了一個Session和一個Session ID用來唯一標識這個Session,并將其通過響應發(fā)送到瀏覽器蔗怠。當瀏覽器第二次發(fā)送請求墩弯,會將前一次服務器響應中的Session ID放在請求中一并發(fā)送到服務器上,服務器從請求中提取出Session ID寞射,并和保存的所有Session ID進行對比渔工,找到這個用戶對應的Session。
??由于Session存放在服務器端桥温,所以隨著時間的推移或者用戶訪問的增多引矩,會給服務器增加負擔。使用的時候要考慮下服務器的性能侵浸。
三旺韭、Cookie的概念
??Cookie實際上是一小段的文本信息√途酰客戶端請求服務器区端,如果服務器需要記錄該用戶狀態(tài),就使用response向客戶端瀏覽器頒發(fā)一個Cookie澳腹≈危客戶端會把Cookie保存起來杨何。
??由于Cookie是存放在客戶端,是可見的悔政,安全性就會很低晚吞。因此不建議將一些重要的信息放在cookie中延旧。
四谋国、兩者的區(qū)別
?1、cookie數(shù)據(jù)存放在客戶端迁沫,session數(shù)據(jù)放在服務器上芦瘾。
?2、cookie不是很安全集畅,別人可以分析存放在本地的cookie并進行cookie欺騙近弟,考慮到安全應當使用session。
?3挺智、session會在一定時間內(nèi)保存在服務器上祷愉,當訪問增多,會比較占用你服務器的性能赦颇,考慮性能應當使用cookie二鳄。
?4、不同瀏覽器對cookie的數(shù)據(jù)大小限制不同媒怯,個數(shù)限制也不相同订讼。
?5、可以考慮將登陸信息等重要信息存放為session扇苞,不重要的信息可以放在cookie中欺殿。
五、兩者的聯(lián)系
?1鳖敷、都是用來記錄用戶的信息脖苏,以便讓服務器分辨不同的用戶。
?2定踱、可以搭配使用帆阳,但都有自己的使用局限,要考慮到安全和性能的問題屋吨。
————————————————
版權聲明:本文為CSDN博主「無痕之意」的原創(chuàng)文章
原文鏈接:https://blog.csdn.net/kelinfeng16/article/details/82895866