服務(wù)器端的無狀態(tài)性是什么式廷?
客戶端的每次請求都是獨立的,服務(wù)端不會主動保留每次HTTP的請求狀態(tài)笙隙。
類似于超市的收銀員不會根據(jù)五官而記住每個結(jié)賬的顧客傲茄。
如何突破HTTP無狀態(tài)性的限制?
在現(xiàn)實生活中掠剑,結(jié)賬的時候出示會員卡屈芜,在web開發(fā)中會員卡就是指cookie,發(fā)送cookie就可以HTTP無狀態(tài)性的限制朴译。
什么是cookie井佑?
域名獨立:不同的域名有不同的cookie,不同域名下的cookie不能相互訪問眠寿;
自動發(fā)送:每當(dāng)客戶端發(fā)起請求時躬翁,會自動把當(dāng)前域名下未過期的cookie發(fā)送到服務(wù)器;
過期時限:每個cookie都有時限盯拱,過期了就不發(fā)送了盒发;
cookie在身份認(rèn)證中的流程
客戶端第一次請求登陸——服務(wù)器通過響應(yīng)頭發(fā)送身份認(rèn)證的cookie——客戶端再次請求登陸——瀏覽器自動把cookie通過請求頭發(fā)送給服務(wù)器——服務(wù)器即可驗明用戶身份
cookie不具備安全性,瀏覽器也提供了讀取cookie的api接口狡逢,所以千萬不能用cookie存儲重要信息迹辐,用戶名密碼等;
提高身份認(rèn)證的安全性
發(fā)送cookie后甚侣,服務(wù)器端會自動核實信息明吩,就像去超市出示會員卡,收銀員要刷卡認(rèn)證一樣殷费,這個“會員卡+刷卡認(rèn)證”就是session認(rèn)證機(jī)制的精髓印荔;
總結(jié):session認(rèn)證機(jī)制就是服務(wù)器通過客戶端的cookie來認(rèn)證客戶端身份低葫。
session工作原理:
1、客戶端提交登陸請求仍律,把賬號密碼提交到服務(wù)器驗證嘿悬;
2、服務(wù)器驗證通過水泉,在服務(wù)器開辟內(nèi)存記錄人的信息善涨,生成cookie字符串,通過響應(yīng)的形式發(fā)送給客戶端草则;
3钢拧、客戶端收到cookie,保存起來炕横;
4源内、客戶端再次發(fā)起請求,通過請求頭把所有可用的cookie發(fā)送給服務(wù)器端份殿;
5膜钓、服務(wù)器端收到cookie后從內(nèi)存中查找對應(yīng)信息,找到則證明用戶驗證成功卿嘲,針對用戶生成特定頁面響應(yīng)給客戶端颂斜;
6、注意:敏感重要的信息是存在服務(wù)器的內(nèi)存中拾枣,不會出現(xiàn)在cookie中沃疮;