最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)備對其規(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到用戶瀏覽器客戶端,而瀏覽器對該Cookie進(jìn)行某種形式的存儲(chǔ)(內(nèi)存或硬盤)。用戶再次訪問該網(wǎng)站時(shí),瀏覽器會(huì)發(fā)送該Cookie(Cookie未到期時(shí))到服務(wù)器,服務(wù)器對該憑據(jù)進(jìn)行驗(yàn)證,合法時(shí)使用戶不必輸入用戶名和密碼就可以直接登錄。

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

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

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

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

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

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

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

GET / HTTP/1.0

HOST:itbilu.com

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

Cookie是一種key=value形式的字符串,服務(wù)器需要記錄這個(gè)客戶端請求的狀態(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. 再次請求時(shí),客戶端請求中會(huì)包含一個(gè)Cookie請求頭

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

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)原理的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Springboot @Value獲取值為空問題解決方案

    Springboot @Value獲取值為空問題解決方案

    這篇文章主要介紹了Springboot @Value獲取值為空問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • springboot整合mongodb并實(shí)現(xiàn)crud步驟詳解

    springboot整合mongodb并實(shí)現(xiàn)crud步驟詳解

    這篇文章主要介紹了springboot整合mongodb并實(shí)現(xiàn)crud,本文分步驟通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • MyBatis如何配置多sql腳本執(zhí)行

    MyBatis如何配置多sql腳本執(zhí)行

    這篇文章主要介紹了MyBatis如何配置多sql腳本執(zhí)行問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 詳解spring+springmvc+mybatis整合注解

    詳解spring+springmvc+mybatis整合注解

    本篇文章主要介紹了詳解spring+springmvc+mybatis整合注解,詳細(xì)的介紹了ssm框架的使用,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-04-04
  • java9學(xué)習(xí)系列之在docker中如何運(yùn)行java9

    java9學(xué)習(xí)系列之在docker中如何運(yùn)行java9

    最近在學(xué)習(xí)java9,所以將學(xué)習(xí)中遇到的一些知識點(diǎn)分享給大家,下面這篇文章主要給大家介紹了java9學(xué)習(xí)系列之在docker中如何運(yùn)行java9的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。
    2017-09-09
  • List、Map、Set接口在Java中的存取元素特點(diǎn)詳細(xì)探討

    List、Map、Set接口在Java中的存取元素特點(diǎn)詳細(xì)探討

    在Java編程語言中集合框架是處理對象組的重要工具,主要包括List、Set和Map接口,這些接口及其實(shí)現(xiàn)類提供了豐富的功能,這篇文章主要給大家介紹了關(guān)于List、Map、Set接口在Java中的存取元素特點(diǎn),需要的朋友可以參考下
    2024-08-08
  • 解決mybatis plus 分頁查詢有條數(shù),total和pages都是零的問題

    解決mybatis plus 分頁查詢有條數(shù),total和pages都是零的問題

    這篇文章主要介紹了解決mybatis plus 分頁查詢有條數(shù),total和pages都是零的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 從源碼角度簡單看StringBuilder和StringBuffer的異同(全面解析)

    從源碼角度簡單看StringBuilder和StringBuffer的異同(全面解析)

    下面小編就為大家分享一篇從源碼角度簡單看StringBuilder和StringBuffer的異同(全面解析),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • Java?String類的理解及字符串常量池介紹

    Java?String類的理解及字符串常量池介紹

    這篇文章主要介紹了Java?String類的理解及字符串常量池介紹,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • 一篇文章帶你入門Java字面量和常量

    一篇文章帶你入門Java字面量和常量

    這篇文章主要介紹了探究Java的常量,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08

最新評論

壤塘县| 棋牌| 河东区| 定陶县| 如皋市| 寻乌县| 枞阳县| 深圳市| 齐齐哈尔市| 崇信县| 兰州市| 宝兴县| 台北县| 古丈县| 凤阳县| 洱源县| 平原县| 垦利县| 北安市| 姜堰市| 恩平市| 阳原县| 平山县| 黄山市| 大姚县| 宁河县| 咸丰县| 德令哈市| 宝鸡市| 池州市| 湟源县| 津市市| 左权县| 渝中区| 曲沃县| 榆树市| 连云港市| 油尖旺区| 太仆寺旗| 仁化县| 申扎县|