Token , Cookie , Session

HTTP 的無狀態(tài)

HTTP協(xié)議是無狀態(tài)的,這與HTTP協(xié)議本來的目的是相符的,客戶端只需要簡單的向服務(wù)器請(qǐng)求下載某些文件大渤,無論是客戶端還是服務(wù)器都沒有必要紀(jì)錄彼此過去的行為,每一次請(qǐng)求之間都是獨(dú)立的,好比一個(gè)顧客和一個(gè)自動(dòng)售貨機(jī)或者一個(gè)普通的(非會(huì)員制)大賣場之間的關(guān)系一樣绒障。 但是如果能夠提供一些按需生成的動(dòng)態(tài)信息會(huì)使web變得更加有用,就萌發(fā)了cookie 和session 等客戶端與服務(wù)器之間保持狀態(tài)的解決方案捍歪。

Session -- 創(chuàng)建户辱,保存在服務(wù)器中的會(huì)話

  • 當(dāng)用戶打開某個(gè)web應(yīng)用時(shí),便與web服務(wù)器產(chǎn)生一個(gè)session糙臼。服務(wù)器使用session把用戶的信息臨時(shí)保存在了服務(wù)器上庐镐, 存放于內(nèi)存。
  • session是由服務(wù)器創(chuàng)建的变逃,跟瀏覽器沒有半毛錢關(guān)系必逆,瀏覽器只是拿到一個(gè)session 的 ID。
  • session是消耗服務(wù)器內(nèi)存的揽乱,所以要合理使用session名眉。
    缺陷:如果web服務(wù)器做了負(fù)載均衡,那么下一個(gè)操作請(qǐng)求到了另一臺(tái)服務(wù)器的時(shí)候session會(huì)丟失凰棉。

Cookie -- 服務(wù)器上生成损拢,保存于客戶端

  • cookie由服務(wù)器生成,發(fā)送給瀏覽器撒犀,瀏覽器把cookie以kv形式保存到某個(gè)目錄下的文本文件內(nèi)福压,下一次請(qǐng)求同一網(wǎng)站時(shí)會(huì)把該cookie發(fā)送給服務(wù)器。
  • 一個(gè)cookie的設(shè)置以及發(fā)送過程分為以下四步:
    客戶端發(fā)送一個(gè)http請(qǐng)求到服務(wù)器端
    服務(wù)器端發(fā)送一個(gè)http響應(yīng)到客戶端或舞,其中包含Set-Cookie頭部
    客戶端發(fā)送一個(gè)http請(qǐng)求到服務(wù)器端隧膏,其中包含Cookie頭部
    服務(wù)器端發(fā)送一個(gè)http響應(yīng)到客戶端
  • 局限:由于cookie是存在客戶端上的,所以瀏覽器加入了一些限制確保cookie不會(huì)被惡意使用嚷那,同時(shí)不會(huì)占據(jù)太多磁盤空間胞枕,所以每個(gè)域的cookie數(shù)量是有限的 ; cookie 不是很安全 魏宽, 別人可以利用儲(chǔ)存的本地的cookie 腐泻。

Token -- 驗(yàn)證用戶身份的令牌

  • 唯一的 决乎,比較安全
  • token 驗(yàn)證流程 :
    客戶端使用用戶名跟密碼請(qǐng)求登錄。
    服務(wù)端收到請(qǐng)求派桩,去驗(yàn)證用戶名與密碼构诚。
    驗(yàn)證成功后,服務(wù)端會(huì)簽發(fā)一個(gè) Token铆惑,再把這個(gè) Token 發(fā)送給客戶端范嘱。
    客戶端收到 Token 以后可以把它存儲(chǔ)起來。
    客戶端每次向服務(wù)端請(qǐng)求資源的時(shí)候需要帶著服務(wù)端簽發(fā)的 Token
    服務(wù)端收到請(qǐng)求员魏,然后去驗(yàn)證客戶端請(qǐng)求里面帶著的 Token丑蛤,如果驗(yàn)證成功,就向客戶端返回請(qǐng)求的數(shù)據(jù)撕阎。

cookie 和session

  • cookie數(shù)據(jù)存放在客戶的瀏覽器上受裹,session數(shù)據(jù)放在服務(wù)器上。
  1. cookie不是很安全虏束,考慮到安全應(yīng)當(dāng)使用session棉饶。
  2. session會(huì)在一定時(shí)間內(nèi)保存在服務(wù)器上。當(dāng)訪問增多镇匀,會(huì)比較占用服務(wù)器的性能考慮到減輕服務(wù)器性能方面照藻,應(yīng)當(dāng)使用cookie。
  3. 單個(gè)cookie保存的數(shù)據(jù)不能超過4K汗侵,很多瀏覽器都限制一個(gè)站點(diǎn)最多保存20個(gè)cookie幸缕。
  4. 將登陸信息等重要信息存放為session,其他信息如果需要保留,可以放在cookie中
    6 . 由于采用服務(wù)器端保持狀態(tài)的方案在客戶端也需要保存一個(gè)標(biāo)識(shí)晃择,所以session機(jī)制可能需要借助于cookie機(jī)制來達(dá)到保存標(biāo)識(shí)的目的冀值,但實(shí)際上它還有其他選擇 --由于cookie可以被人為的禁止也物,必須有其他機(jī)制以便在cookie被禁止時(shí)仍然能夠把session id傳遞回服務(wù)器.

token 和session

  • session只提供一種簡單的認(rèn)證宫屠,即有此 session ID ,即認(rèn)為有此 User的全部權(quán)力 滑蚯; token Token是唯一的浪蹂。提供的是認(rèn)證 和 授權(quán) ,認(rèn)證是針對(duì)用戶告材,授權(quán)是針對(duì)app坤次, 不可以轉(zhuǎn)移到其它 app上,也不可以轉(zhuǎn)到其它 用戶上斥赋。
  • 所以,如果用戶數(shù)據(jù)可能需要和第三方共享缰猴,或者允許第三方調(diào)用 API 接口,用 token 疤剑。如果只是自己的網(wǎng)站滑绒,自己的 app闷堡,用session也可以。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末疑故,一起剝皮案震驚了整個(gè)濱河市杠览,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌纵势,老刑警劉巖踱阿,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異钦铁,居然都是意外死亡软舌,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門育瓜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來葫隙,“玉大人,你說我怎么就攤上這事躏仇×到牛” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵焰手,是天一觀的道長糟描。 經(jīng)常有香客問我,道長书妻,這世上最難降的妖魔是什么船响? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮躲履,結(jié)果婚禮上见间,老公的妹妹穿的比我還像新娘。我一直安慰自己工猜,他們只是感情好米诉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著篷帅,像睡著了一般史侣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上魏身,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天惊橱,我揣著相機(jī)與錄音,去河邊找鬼箭昵。 笑死税朴,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播正林,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼茧跋,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了卓囚?” 一聲冷哼從身側(cè)響起瘾杭,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎哪亿,沒想到半個(gè)月后粥烁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蝇棉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年讨阻,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片篡殷。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡怠噪,死狀恐怖泛范,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤忧陪,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布穆刻,位于F島的核電站能真,受9級(jí)特大地震影響雏节,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜邑跪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一次坡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧画畅,春花似錦砸琅、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至寇僧,卻和暖如春摊腋,著一層夾襖步出監(jiān)牢的瞬間沸版,已是汗流浹背嘁傀。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留视粮,地道東北人细办。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親笑撞。 傳聞我的和親對(duì)象是個(gè)殘疾皇子岛啸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容