欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Http Cookie機(jī)制及Cookie的實(shí)現(xiàn)原理

 更新時(shí)間:2021年06月21日 11:52:25   作者:水邊風(fēng)  
Cookie是進(jìn)行網(wǎng)站用戶身份,實(shí)現(xiàn)服務(wù)端Session會(huì)話持久化的一種非常好方式。Cookie最早由Netscape公司開發(fā),現(xiàn)在由 IETF 的RFC 6265標(biāo)準(zhǔn)備對(duì)其規(guī)范,已被所有主流瀏覽器所支持

1. 為什么需要Cookie?

HTTP是一種無狀態(tài)的協(xié)議,客戶端與服務(wù)器建立連接并傳輸數(shù)據(jù),數(shù)據(jù)傳輸完成后,連接就會(huì)關(guān)閉。再次交互數(shù)據(jù)需要建立新的連接,因此,服務(wù)器無法從連接上跟蹤會(huì)話,也無法知道用戶上一次做了什么。這嚴(yán)重阻礙了基于Web應(yīng)用程序的交互,也影響用戶的交互體驗(yàn)。如:在網(wǎng)絡(luò)有時(shí)候需要用戶登錄才進(jìn)一步操作,用戶輸入用戶名密碼登錄后,瀏覽了幾個(gè)頁面,由于HTTP的無狀態(tài)性,服務(wù)器并不知道用戶有沒有登錄。

Cookie是解決HTTP無狀態(tài)性的有效手段,服務(wù)器可以設(shè)置或讀取Cookie中所包含的信息。當(dāng)用戶登錄后,服務(wù)器會(huì)發(fā)送包含登錄憑據(jù)的Cookie到用戶瀏覽器客戶端,而瀏覽器對(duì)該Cookie進(jìn)行某種形式的存儲(chǔ)(內(nèi)存或硬盤)。用戶再次訪問該網(wǎng)站時(shí),瀏覽器會(huì)發(fā)送該Cookie(Cookie未到期時(shí))到服務(wù)器,服務(wù)器對(duì)該憑據(jù)進(jìn)行驗(yàn)證,合法時(shí)使用戶不必輸入用戶名和密碼就可以直接登錄。

本質(zhì)上講,Cookie是一段文本信息??蛻舳苏?qǐng)求服務(wù)器時(shí),如果服務(wù)器需要記錄用戶狀態(tài),就在響應(yīng)用戶請(qǐng)求時(shí)發(fā)送一段Cookie信息??蛻舳藶g覽器保存該Cookie信息,當(dāng)用戶再次訪問該網(wǎng)站時(shí),瀏覽器會(huì)把Cookie做為請(qǐng)求信息的一部分提交給服務(wù)器。服務(wù)器檢查Cookie內(nèi)容,以此來判斷用戶狀態(tài),服務(wù)器還會(huì)對(duì)Cookie信息進(jìn)行維護(hù),必要時(shí)會(huì)對(duì)Cookie內(nèi)容進(jìn)行修改。

2. Cookie的類型

Cookie總時(shí)由用戶客戶端進(jìn)行保存的(一般是瀏覽器),按其存儲(chǔ)位置可分為:內(nèi)存式Cookie和硬盤式Cookie。

內(nèi)存式Cookie存儲(chǔ)在內(nèi)存中,瀏覽器關(guān)閉后就會(huì)消失,由于其存儲(chǔ)時(shí)間較短,因此也被稱為非持久Cookie或會(huì)話Cookie。

硬盤式Cookie保存在硬盤中,其不會(huì)隨瀏覽器的關(guān)閉而消失,除非用戶手工清理或到了過期時(shí)間。由于硬盤式Cookie存儲(chǔ)時(shí)間是長(zhǎng)期的,因此也被稱為持久Cookie。

3. Cookie的實(shí)現(xiàn)原理

Cookie定義了一些HTTP請(qǐng)求頭和HTTP響應(yīng)頭,通過這些HTTP頭信息使服務(wù)器可以與客戶進(jìn)行狀態(tài)交互。

客戶端請(qǐng)求服務(wù)器后,如果服務(wù)器需要記錄用戶狀態(tài),服務(wù)器會(huì)在響應(yīng)信息中包含一個(gè)Set-Cookie的響應(yīng)頭,客戶端會(huì)根據(jù)這個(gè)響應(yīng)頭存儲(chǔ)Cookie信息。再次請(qǐng)求服務(wù)器時(shí),客戶端會(huì)在請(qǐng)求信息中包含一個(gè)Cookie請(qǐng)求頭,而服務(wù)器會(huì)根據(jù)這個(gè)請(qǐng)求頭進(jìn)行用戶身份、狀態(tài)等較驗(yàn)。

下面是一個(gè)實(shí)現(xiàn)Cookie機(jī)制的,簡(jiǎn)單的HTTP請(qǐng)求過程:

1. 客戶端請(qǐng)求服務(wù)器

客戶端請(qǐng)求IT筆錄網(wǎng)站首頁,請(qǐng)求頭如下:

GET / HTTP/1.0

HOST:itbilu.com

2. 服務(wù)器響應(yīng)請(qǐng)求

Cookie是一種key=value形式的字符串,服務(wù)器需要記錄這個(gè)客戶端請(qǐng)求的狀態(tài),因此在響應(yīng)頭中包一個(gè)Set-Cookie字段。響應(yīng)頭如下:

HTTP/1.0 200 OK

Set-Cookie:UserID=itbilu; Max-Age=3600; Version=1

Content-type:text/html

……

3. 再次請(qǐng)求時(shí),客戶端請(qǐng)求中會(huì)包含一個(gè)Cookie請(qǐng)求頭

客戶端會(huì)對(duì)服務(wù)器響應(yīng)的Set-Cookie頭信息進(jìn)行存儲(chǔ)。再次請(qǐng)求時(shí),將會(huì)在請(qǐng)求頭中包含服務(wù)器響應(yīng)的Cookie信息。請(qǐng)求頭如下

GET / HTTP/1.0

HOST:itbilu.com

Cookie:UserID=itbilu

以上就是Http Cookie機(jī)制及Cookie的實(shí)現(xiàn)原理的詳細(xì)內(nèi)容,更多關(guān)于Http Cookie和Cookie實(shí)現(xiàn)原理的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論