cookie那些事(1)基礎

cookie是什么呢?

不不不,我說的cookie是這個

下面就詳細介紹下這個web世界中不可缺少的一個元素

1. cookie的產(chǎn)生

cookie是什么呢?wikipedia上面的定義這么寫:

Cookie(復數(shù)形態(tài)Cookies),中文名稱為“小型文本文件”或“小甜餅”[1],指某些網(wǎng)站為了辨別用戶身份而儲存在用戶本地終端(Client Side)上的數(shù)據(jù)(通常經(jīng)過加密)。定義于RFC2109。是網(wǎng)景公司的前雇員盧·蒙特利在1993年3月的發(fā)明[2]。

從這段話可以知道cookie 的一個最大的特征就是存儲在 客戶端
而它的主要作用是 身份識別

對HTTP協(xié)議有一定了解的朋友們應該知道,HTTP協(xié)議是一種 無狀態(tài) 協(xié)議,何謂無狀態(tài)?就是這一次請求,和上一次,下一次請求之間相互完全獨立。

現(xiàn)在的很多網(wǎng)站都需要有登錄功能,如果單純用HTTP來識別,由于其無狀態(tài)的性質(zhì),不能說這一個請求進行過身份認證了,下一條就不進行了。因此,每一次請求都要進行一次身份認證,而每加載一個頁面,就會有十幾甚至幾十條的http請求,反復的進行身份驗證對于資源的消耗十分的大,因此產(chǎn)生了cookie來解決這個問題

2.cookie的作用方法

  • 第一步 完成(如用戶名密碼方式的)身份驗證,服務端在給客戶端的response中加入設置cookie的信息
  • 第二步 客戶端瀏覽器把cookie儲存在本地
  • 第三步 客戶端在每次發(fā)送請求的時候,將cookie加在請求的header中
  • 第四步 (有需要時)重復第三步,知道瀏覽器將cookie清除或者cookie自動過期

3.cookie的設置與傳輸

設置

cookie的設置,是通過response中的一個名為set-cookie的header實現(xiàn)的,傳輸?shù)姆绞绞莔ap (key-value pair鍵值對,也稱作關聯(lián)數(shù)組,哈希表)

cookie的傳遞,是每次瀏覽器發(fā)到服務端的request的header中,也是以鍵值方式傳遞

4.用cookie實現(xiàn)持續(xù)的身份驗證

cookie的一大作用就是用來實現(xiàn)持續(xù)的身份驗證,登錄一次,保持一段時間的在線狀態(tài)。
實現(xiàn)的方法是服務器端使用session用戶對應的session變量存儲在服務端,將一個與,而將session的id,也是對應唯一的身份識別碼,存儲在cookie中,每一個sessionid對應唯一的登錄用戶。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

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

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,869評論 18 139
  • 作者:晚晴幽草軒www.jeffjade.com/2016/10/31/115-summary-of-cookie...
    饑人谷_Dylan閱讀 1,232評論 0 51
  • 背景在HTTP協(xié)議的定義中,采用了一種機制來記錄客戶端和服務器端交互的信息,這種機制被稱為cookie,cooki...
    時芥藍閱讀 2,381評論 1 17
  • 注:本文轉(zhuǎn)載自前端大全 背景 在HTTP協(xié)議的定義中,采用了一種機制來記錄客戶端和服務器端交互的信息,這種機制被稱...
    楠小忎閱讀 687評論 0 0
  • 劉錫是駙馬寨人,壽終正寢后,生前好友、同榜進士,曲周縣人聶鶴齡為他寫了墓志銘。 按照墓志銘介紹,劉錫出生于出生于嘉...
    椒鄉(xiāng)書生閱讀 1,595評論 2 0