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

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

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

1. 為什么需要Cookie?

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

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

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

2. Cookie的類型

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

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

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

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

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

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

下面是一個實(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ù)器需要記錄這個客戶端請求的狀態(tài),因此在響應(yīng)頭中包一個Set-Cookie字段。響應(yīng)頭如下:

HTTP/1.0 200 OK

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

Content-type:text/html

……

3. 再次請求時,客戶端請求中會包含一個Cookie請求頭

客戶端會對服務(wù)器響應(yīng)的Set-Cookie頭信息進(jìn)行存儲。再次請求時,將會在請求頭中包含服務(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í)價值,需要的朋友可以參考下
    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í)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • MyBatis如何配置多sql腳本執(zhí)行

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

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

    詳解spring+springmvc+mybatis整合注解

    本篇文章主要介紹了詳解spring+springmvc+mybatis整合注解,詳細(xì)的介紹了ssm框架的使用,具有一定的參考價值,有興趣的可以了解一下
    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都是零的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 從源碼角度簡單看StringBuilder和StringBuffer的異同(全面解析)

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

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

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

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

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

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

最新評論

潼南县| 胶南市| 腾冲县| 岢岚县| 建宁县| 兴安盟| 社旗县| 平果县| 蓝山县| 永靖县| 阳谷县| 衡山县| 柯坪县| 苏尼特左旗| 元江| 岳阳市| 博爱县| 淳安县| 临朐县| 中宁县| 南澳县| 家居| 桂林市| 聂拉木县| 郑州市| 丘北县| 南昌县| 亚东县| 讷河市| 军事| 东源县| 汤原县| 郑州市| 仁怀市| 庆安县| 柳州市| 玉田县| 盐山县| 彰武县| 延庆县| 交城县|