瀏覽器中cookie赠摇、session、token存在意義
?http協(xié)議是無狀態(tài)協(xié)議,請求之間是沒有聯(lián)系的藕帜,cookie烫罩、session、token可以幫助服務(wù)器區(qū)分到底是誰在訪問
原理是什么洽故?
cookie工作原理:
客戶端第一次訪問服務(wù)器, 服務(wù)器端保存客戶的信息并且給客戶端一個(gè)Cookie, 客戶端攜帶Cookie去訪問服務(wù)端, 服務(wù)端通過攜帶的Cookie找出該用戶信息. 服務(wù)端就能夠知道是誰訪問了嗡髓。
?保存方式:cookie由服務(wù)器生成,保存在客戶端瀏覽器收津。
缺點(diǎn):容易被劫持,不安全浊伙。
?session工作原理:
?session 從字面上講撞秋,就是會(huì)話。服務(wù)器要知道當(dāng)前發(fā)請求給自己的是誰嚣鄙。這個(gè)就類似于你和一個(gè)人交談吻贿,你怎么知道當(dāng)前和你交談的是張三而不是李四呢?對方肯定有某種特征(長相等)表明他就是張三哑子。
保存方式:session保存在服務(wù)端
缺點(diǎn):當(dāng)用戶量太大時(shí)舅列,占用服務(wù)器資源。
優(yōu)點(diǎn): 3.較安全
主要說token~:
?token的工作原理:
1.用戶通過用戶名和密碼向服務(wù)端發(fā)送請求
2.服務(wù)端通過驗(yàn)證卧蜓,生成一個(gè)token發(fā)送給客戶端
3.客戶端保存token帐要,發(fā)送請求時(shí)帶上token
4.服務(wù)器通過驗(yàn)證,返回?cái)?shù)據(jù)
token的優(yōu)勢:
1.無狀態(tài)弥奸、可擴(kuò)展
2.支持移動(dòng)設(shè)備
3.跨程序調(diào)用
4.安全
5.Token完全由應(yīng)用管理榨惠,所以它可以避開同源策略Token可以避免 CSRF 攻擊Token可以是無狀態(tài)的,可以在多個(gè)服務(wù)間共享
三者的區(qū)別:
1 Cookie盛霎、Session 和 Token 都是用來做持久化處理的赠橙,目的就是讓客戶端和服務(wù)端相互認(rèn)識。Http 請求默認(rèn)是不持久的沒有狀態(tài)的愤炸,誰也不認(rèn)識誰期揪。
2 Cookie: 是存放在客戶端的信息,服務(wù)器通過響應(yīng)頭 Set-Cookie 字段給客戶端规个,如果 Cookie 已過期一般是會(huì)被清楚的凤薛,如果 Cookie 沒過期下次訪問網(wǎng)站還是會(huì)通過請求頭的 Cookie 字段帶給服務(wù)器。
3 Session: 是存放在服務(wù)器上面的客戶端臨時(shí)信息诞仓,用戶離開網(wǎng)站是會(huì)被清除的枉侧。
4 Token(App)"令牌":用戶身份的驗(yàn)證,有點(diǎn)類似于 Cookie 狂芋,相對來說更安全榨馁,一般流程:
4.1 客戶端向服務(wù)端申請 Token
4.2 服務(wù)端收到請求,會(huì)去驗(yàn)證用戶信息帜矾,簽發(fā)一個(gè) Token 給客戶端翼虫,服務(wù)端自己也會(huì)保存 Token
4.3 客戶端收到服務(wù)端簽發(fā)的 Token 會(huì)保存起來屑柔,每次請求帶上 Token
4.4 服務(wù)器收到其他請求,會(huì)去驗(yàn)證客戶端的 Token , 如果成功返回?cái)?shù)據(jù)珍剑,不成功啥都不給或者做其他處理