HTTP:十.cookie機制

Cookie概念及類型

HTTP cookie,簡稱cookie,又稱數碼存根、“網站/瀏覽+魔餅/魔片”等,是瀏覽網站時由網絡服務器創建并由網頁瀏覽器存放在用戶計算機或其他設備的小文本文件。Cookie使Web服務器能在用戶的設備存儲狀態信息(如添加到在線商店購物車中的商品)或跟蹤用戶的瀏覽活動(如點擊特定按鈕、登錄或記錄歷史)。

cookie 的起源

早期的 Web 應用面臨的最大問題之一就是如何維持狀態。簡言之,服務器無法知道兩個請求是否來自于同一個瀏覽器。當時,最簡單的辦法就是在請求的頁面中插入一個 token,然后在下次請求時將這個 token 返回至服務器。這需要在頁面的 form 表單中插入一個包含 token 的隱藏域,或者將 token 放在 URL 的 query 字符串中來傳遞。這兩種方法都需要手動操作,而且極易出錯。

當時網景通訊的一名員工 Lou Montulli,在 1994 年將 “magic cookies” 的概念應用到 Web 通訊中。他試圖解決 Web 的第一個購物車應用,現在購物車成了購物網站的支柱。他的原始說明文檔提供了 cookie 工作原理的基本信息,該文檔后來被作為規范納入到 RFC 2109(大多數瀏覽器的實現參考文檔)中,最終被納入到 RFC 2965 中。Montulli 也被授予 cookie 的美國專利。網景瀏覽器在它的第一個版本中就開始支持 cookie,現在所有 Web 瀏覽器都支持 cookie。

HTTP Cookie 類型

**會話 cookie:**這些 cookie 在用戶訪問網站時臨時存儲信息。它們存儲在用戶的瀏覽器中,通常在用戶關閉瀏覽器時被刪除。

**持久性 cookie:**即使在用戶關閉瀏覽器后,這些 cookie 仍會保留在用戶的計算機上。它們用于記住用戶的偏好并幫助實現個性化。

**安全 cookie:**這些 cookie 有助于保護敏感信息,如密碼和信用卡號。

**第三方 cookie:**這些 cookie 由第三方網站創建,可在多個網站上跟蹤用戶活動。

**Flash cookies:**這些 cookie 存儲有關視頻和音頻文件的信息。它們存儲在用戶的計算機上,用于幫助流媒體。

Cookie原理

用戶第一次請求服務器時,服務器返回一個帶Set-Cookie(Set-Cookie1)首部的報文,值為鍵值對,描述了cookie的名字、值、域、路徑等信息,然后客戶端接下來每次訪問服務器的時候都會帶上一個Cookie首部的報文,它的值剛好是前面響應報文返回的名字鍵值對,從而達到驗證用戶身份的信息。
Cookie過程圖:
在這里插入圖片描述cookie的設置以及發送過程:

  1. 客戶端發送一個http請求到服務器端
  2. 服務器端發送一個http響應到客戶端,其中包含Set-Cookie頭部
  3. 客戶端發送一個http請求到服務器端,其中包含Cookie頭部
  4. 服務器端發送一個http響應到客戶端
Cookie的屬性

value屬性

value屬性是必需的,它是一個鍵值對,用于指定Cookie的值。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/76517.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/76517.shtml
英文地址,請注明出處:http://en.pswp.cn/web/76517.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

記錄小程序第一次調用Api,基于騰訊云Serverless函數,實現小程序的成功接入api,以及數據調用

目錄 創建騰訊云個人賬戶新建severless應用建立函數URL小程序中調用api示例 創建騰訊云個人賬戶 百度搜索即可,并注冊 新建severless應用 作者以github下載的某Api為例,這里不展示具體Api,只關注操作即可,相信都是互通的 在騰…

ES6 第一講 變量定義 堆與棧 字符串的擴展和數值型的擴展

文章目錄 1.ES6變量定義2.ES6堆和棧3.字符串的擴展3.1 模板字符串3.2 判斷是否以指定的字符串開頭或結尾3.3 字符串重復輸出3.4 填充方法3.5 去除前后字符串空格3.6 返回參數指定位置的字符 4. 數值型的擴展4.1 二進制0B 八進制0O4.2 判斷是否是一個無窮大的數字 (判…

LeetCode第158題_用Read4讀取N個字符 II

LeetCode 第158題:用Read4讀取N個字符 II 題目描述 給你一個文件,并且該文件只能通過給定的 read4 方法來讀取,請實現一個方法來讀取 n 個字符。 read4 方法: API read4 可以從文件中讀取 4 個連續的字符,并且將它…

算法篇之單調棧

單調棧算法入門 單調棧是一種特殊的數據結構應用,它的核心在于維護一個棧,使得棧內元素保持單調遞增或者單調遞減的順序。這種數據結構在解決很多算法問題時非常有效,例如求數組中每個元素的下一個更大元素、每日溫度問題等。 一、單調棧的…

Kubernetes控制平面組件:調度器Scheduler(二)

云原生學習路線導航頁(持續更新中) kubernetes學習系列快捷鏈接 Kubernetes架構原則和對象設計(一)Kubernetes架構原則和對象設計(二)Kubernetes架構原則和對象設計(三)Kubernetes控…

【網絡】數據鏈路層知識梳理

全是通俗易懂的講解,如果你本節之前的知識都掌握清楚,那就速速來看我的筆記吧~ 自己寫自己的八股!讓未來的自己看懂! (全文手敲,受益良多) 數據鏈路層 我們來重新理解一下這個圖:…

機器學習(神經網絡基礎篇)——個人理解篇6(概念+代碼)

1 在聲明一個類中,構建一個屬于類的函數,前面為什要加上“self”? 就像下面這一串代碼: class TwoLayerNet:def __init__(self, input_size, hidden_size, output_size,weight_init_std0.01):# 初始化權重self.params {}self.p…

Cribl 對Windows-xml log 進行 -Removing filed-06

Removing Fields Description? The Eval Function can be used to add or remove fields. In this example we will remove the extracted fields while preserving _raw, _time,index,source, sourcetype. Steps - Adding an Eval Function

chili3d調試6 添加左側面板

注釋前 一個一個注釋看對應哪個窗口 無事發生 子方法不是顯示的窗口 注釋掉看看 沒了 注釋這個看看 零件頁面沒了 這個瀏覽器居然完全不用關的,刷新就重載了 注釋看看 無工具欄版本 sidebar: 往框框里面加入 div({ className: style.input }, user_…

Linux學習——了解和熟悉Linux系統的遠程終端登錄

Linux學習——了解和熟悉Linux系統的遠程終端登錄 一.配置Ubuntu系統的網絡和用戶 1、設置虛擬機網絡為橋接模式 打開VMWare,選擇編輯虛擬機設置,在網絡適配器設置中,選擇“橋接模式”,保存設置并啟動Ubuntu。 2、配置Ubuntu的…

【JAVA EE初階】多線程(1)

這樣的代碼,雖然也能打印hello thread,但是沒有創建新的線程,而是直接在main方法所在的主線程中執行了run的邏輯 start方法,是調用系統api,真正在操作系統內部創建一個線程。這個新的線程會以run作為入口方法&#xff…

javase 學習

一、Java 三大版本 javaSE 標準版 (桌面程序; 控制臺開發) javaME 嵌入式開發(手機、小家電)基本不用,已經淘汰了 javaEE E業級發開(web端、 服務器開發) 二、Jdk ,jre jvm 三…

【Linux】Linux 操作系統 - 05 , 軟件包管理器和 vim 編輯器的使用 !

文章目錄 前言一、軟件包管理器1 . 軟件安裝2 . 包管理器3 . Linux 生態 二、軟件安裝 、卸載三、vim 的使用1 . 什么是 vim ?2 . vim 多模式3 . 命令模式 - 命令4 . 底行模式 - 命令5. 插入模式6 . 替換模式7 . V-BLOCK 模式8 . 技巧補充 總結 前言 本篇筆者將會對軟件包管理…

python基礎知識點(1)

python語句 一行寫一條語句 一行內寫多行語句,使用分號分隔建議每行寫一句,且結束時不寫分號寫在[ ]、{ }內的跨行語句,被視為一行語句\ 是續行符,實現分行書寫功能 反斜杠表示下一行和本行是同一行 代碼塊與縮進 代碼塊復合語句&#xf…

C#/.NET/.NET Core技術前沿周刊 | 第 35 期(2025年4.14-4.20)

前言 C#/.NET/.NET Core技術前沿周刊,你的每周技術指南針!記錄、追蹤C#/.NET/.NET Core領域、生態的每周最新、最實用、最有價值的技術文章、社區動態、優質項目和學習資源等。讓你時刻站在技術前沿,助力技術成長與視野拓寬。 歡迎投稿、推薦…

HTML表單與數據驗證設計

HTML 表單與數據驗證設計:構建可靠的用戶數據采集系統 引言 互聯網的核心是數據交互,而HTML表單是這一交互的主要入口。作為前端工程師,設計高質量的表單不僅關乎用戶體驗,更直接影響數據收集的準確性和系統安全。 在我的學習實…

基于STM32的Keil環境搭建與點燈

本人使用的STM32開發板為正點原子的STM32F103ZE,在此記錄完整的搭建與點燈過程。 一、Keil的安裝與配置 安裝Keil 首先進入Keil下載官網:https://www.keil.com/download/product/ 點擊MDK-ARM,并填寫相關信息,之后開始下載最新版…

React-useRef

如果我們想在hooks里面獲同步取最新的值&#xff0c;那么則可以使用useRef, 關鍵源碼如下&#xff1a; function mountRef<T>(initialValue: T): {|current: T|} {const hook mountWorkInProgressHook();const ref {current: initialValue};hook.memoizedState ref;re…

幽靈依賴與常見依賴管理

文章目錄 前言1. 演示&#xff1a;檢測和修復幽靈依賴步驟1&#xff1a;安裝 depcheck步驟2&#xff1a;在項目根目錄運行 depcheck可能的輸出步驟3&#xff1a;修復幽靈依賴 2. 依賴管理的好習慣 1. 場景設定現在有如下依賴需求&#xff1a; 2. 依賴沖突的表現3. 解決依賴沖突…

如何使用人工智能大模型,免費快速寫工作總結?

如何使用人工智能大模型&#xff0c;免費快速寫工作總結&#xff1f; 詳細學習視頻https://edu.csdn.net/learn/40406/666581