會話與會話管理:Cookie與Session的深度解析

一、什么是會話?

二、Cookie:客戶端存儲技術

1. Cookie的工作原理

?2、在后端設置cookie

?3、在前端設置cookie

?三、瀏覽器開啟了cookie禁用怎么辦?


一、什么是會話?

????????會話(Session)是指一個用戶與服務器之間的一系列交互過程。從用戶第一次訪問服務器開始,到用戶關閉瀏覽器結束,這個過程稱為一個會話。會話管理的目標是讓服務器能夠“記住”用戶的身份和之前的操作,從而實現有狀態的交互。

????????會話分為兩種類型:

  1. 有狀態會話(Stateful Session):服務器主動維護用戶的會話狀態信息(如用戶登錄狀態、操作記錄等),并將其存儲在服務端。類似于“服務員記住你的喜好”。

  2. 無狀態會話(Stateless Session):服務器不存儲用戶狀態信息,所有狀態由客戶端自行管理(如通過URL參數或客戶端存儲)。類似于“服務員不會記住你”。

由于HTTP協議本身是無狀態的,需要借助CookieSession技術實現會話管理

????????會話管理:像http這種不會保存會話狀態的需要 借助其他方法來幫助保存會話狀態,讓服務器能夠“記住”用戶的身份和之前的操作。cookie客戶端技術【把狀態存在客戶端】、session服務端技術【把狀態存在服務端】

二、Cookie:客戶端存儲技術

1. Cookie的工作原理

? ? ? ? cookie由服務器創建,【所有第一次訪問沒有信息】然后通過響應發送給客戶端,發送到用戶瀏覽器并保存到本地的一塊信息。他會在瀏覽器下次發起請求時攜帶并發送到服務器上

??

?

?2、在后端設置cookie

? ?① test: 創建一個設置cookie的服務器后端 SetCookie

? ? 查看cookie:

? ? ??

? ?設置值:?

? ?設置cookie后任一請求都能攜帶cookie信息 :

② 獲取cookie:創建一個GetCookie的服務器后端?

后端輸出?

??

?3、在前端設置cookie

????????cookie作為一個客戶端技術,在前端頁面利用js技術也可以設置獲取

設置:

?獲取:

?也可以使用jquery操作:jQuery Cookie 插件 | 菜鳥教程----👍

這里我是本地引入的?

?獲取所有cookie:console.log($.cookie(''))

可以直接獲取某個cookie console.log($.cookie('account'))?

 //刪除某個cookie$.removeCookie('color');

?

三、Session:服務端的會話管理技術

1、Session的工作原理

?????????Session是一種存儲在服務器端的技術。服務器會為每個用戶創建一個Session,并將Session ID存儲在Cookie中發送給客戶端。客戶端在每次請求時會攜帶Session ID,服務器通過Session ID來識別用戶。?

? ? ? ?

2、服務器后端設置session----只能在后端設置,前端設置不了?

?

可以看到JSESSIONID----每次訪問都會更新

?服務器后端獲取session

刪除session?

輸出就沒有名字了

銷毀session

?三、瀏覽器開啟了cookie禁用怎么辦?

???????如果瀏覽器開啟了cookie禁用,就徹底不能用cookie了,session也不能正常使用,但是session可以挽救一下:

在 session 這個地方,重寫 URL,借助重定向直接跳到 get session。

?

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

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

相關文章

【Linux系統】—— 馮諾依曼體系結構與操作系統初理解

【Linux系統】—— 馮諾依曼體系結構與操作系統初理解 1 馮諾依曼體系結構1.1 基本概念理解1.2 CPU只和內存打交道1.3 為什么馮諾依曼是這種結構1.4 理解數據流動 2 操作系統2.1 什么是操作系統2.2 設計OS的目的2.3 操作系統小知識點2.4 如何理解"管理"2.5 系統調用和…

算法-二叉樹篇15-最大二叉樹

最大二叉樹 力扣題目鏈接 題目描述 給定一個不重復的整數數組 nums 。 最大二叉樹 可以用下面的算法從 nums 遞歸地構建: 創建一個根節點,其值為 nums 中的最大值。 遞歸地在最大值 左邊 的 子數組前綴上 構建左子樹。 遞歸地在最大值 右邊 的 子數組后綴上 構建…

運維Apache面試題及參考答案

目錄 簡述 Apache Web 服務器的主要特點及適用場景 Apache 的默認監聽端口是什么?如何修改為其他端口? Apache 的主配置文件名稱及路徑是什么?不同 Linux 發行版的默認路徑有何差異? 解釋 Apache 的 MPM(Multi-Processing Module)機制,列舉常見的工作模式(如 prefor…

51c自動駕駛~合集52

我自己的原文哦~ https://blog.51cto.com/whaosoft/13383340 #世界模型如何推演未來的千萬種可能 駕駛世界模型(DWM),專注于預測駕駛過程中的場景演變,已經成為追求自動駕駛的一種有前景的范式。這些方法使自動駕駛系統能夠更…

用大白話解釋緩存Redis +MongoDB是什么有什么用怎么用

Redis和MongoDB是什么? Redis:像你家的“小冰箱”,專門存高頻使用的食物(數據)。它是基于內存的鍵值數據庫,讀寫速度極快(每秒超10萬次操作)。比如你每次打開手機App,用…

自然語言處理:詞頻-逆文檔頻率

介紹 大家好,博主又來給大家分享知識了。本來博主計劃完成稠密向量表示的內容分享后,就開啟自然語言處理中文本表示的講解。可在整理分享資料的時候,博主發現還有個知識點,必須得單獨拎出來好好說道說道。 這就是TF-IDF&#xf…

架構思維:架構的演進之路

文章目錄 引言為什么架構思維如此重要架構師的特點軟件架構的知識體系如何提升架構思維大型互聯網系統架構的演進之路一、大型互聯網系統的特點二、系統處理能力提升的兩種途徑三、大型互聯網系統架構演化過程四、總結 引言 在軟件開發行業中,有很多技術人可能會問…

DeepSeek-R1-Zero:基于基礎模型的強化學習

注:此文章內容均節選自充電了么創始人,CEO兼CTO陳敬雷老師的新書《自然語言處理原理與實戰》(人工智能科學與技術叢書)【陳敬雷編著】【清華大學出版社】 文章目錄 DeepSeek大模型技術系列四DeepSeek大模型技術系列四》DeepSeek-…

Metal學習筆記八:紋理

到目前為止,您已經學習了如何使用片段函數和著色器為模型添加顏色和細節。另一種選擇是使用圖像紋理,您將在本章中學習如何操作。更具體地說,您將了解: ? UV 坐標:如何展開網格,以便可以對其應用紋理。 ?…

Dify使用和入門

第一步:了解 Dify 在開始之前,先簡單了解一下 Dify 是什么: Dify 是一個開源的 LLM 應用開發平臺,專注于幫助開發者快速構建生產級的生成式 AI 應用。它支持知識庫集成、RAG(檢索增強生成)技術、復雜工作…

threeJS——安裝以及三要素

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 前言一、安裝二、三要素1.場景1.1創建場景1.2向場景添加元素1.3場景屬性 2.相機2.1相機特點2.2正交相機2.3空間布局2.4小姐操作 3.渲染器 總結 前言 本章簡單介紹前…

畢業項目推薦:基于yolov8/yolo11的野生菌菇檢測識別系統(python+卷積神經網絡)

文章目錄 概要一、整體資源介紹技術要點功能展示:功能1 支持單張圖片識別功能2 支持遍歷文件夾識別功能3 支持識別視頻文件功能4 支持攝像頭識別功能5 支持結果文件導出(xls格式)功能6 支持切換檢測到的目標查看 二、數據集三、算法介紹1. YO…

【精華】為什么class在前端開發中不常用?

為什么class在前端開發中不常用? js是一種基于原型的語言。它的對象繼承是通過 原型鏈(prototype chain)實現的,每個對象都有一個 proto 屬性指向它的原型。(大多數傳統面向對象語言(如 Java、C、Python、…

【六祎 - Note】SQL備忘錄;DDL,DML,DQL,DCL

SQL備忘錄 from to : 點擊訪問源地址

阿里云物聯網獲取設備屬性api接口:QueryDevicePropertyData

阿里云物聯網接口:QueryDevicePropertyData 說明:調用該接口查詢指定設備或數字孿生節點,在指定時間段內,單個屬性的數據 比如提取上傳到物聯網的溫度數據 api文檔:QueryDevicePropertyData_物聯網平臺_API文檔-阿里…

需求和開發模型

文章目錄 什么是需求?用戶需求軟件需求用戶需求和軟件需求的不同 開發模型什么是“模型”?軟件的生命周期常見的開發模型瀑布模型(Waterfall Model)螺旋模型增量模型、迭代模型敏捷模型 測試模型V 模型W 模型(雙 V 模型…

21-發糖果

n 個孩子站成一排。給你一個整數數組 ratings 表示每個孩子的評分。 你需要按照以下要求,給這些孩子分發糖果: 每個孩子至少分配到 1 個糖果。 相鄰兩個孩子評分更高的孩子會獲得更多的糖果。 請你給每個孩子分發糖果,計算并返回需要準備的 最…

sql深入學習

文章目錄 前言知識學習注釋的兩種形式字符型注入萬能密碼 布爾盲注報錯注入堆疊注入時間盲注二次注入 小技巧 前言 這次學習建立在對數據庫有基本的認識,了解基礎的增刪改查語句,數字型注入和字符型注入的基礎上,進一步深入學習知識&#xf…

利用three.js在Vue項目中展示重構的stl模型文件

一、目的 為了在前端頁面展示3d打印機打印過程 二、前期準備 完整模型的stl文件和模型切割成的n個stl文件 models文件夾下的文件就是切割后的stl文件 三、代碼 <template><div ref"threeContainer" class"three-container"></div><…

【Eureka 緩存機制】

今天簡單介紹一下Eureka server 的緩存機制吧?????? 一、先來個小劇場&#xff1a;服務發現的"拖延癥" 想象你是個外賣小哥&#xff08;客戶端&#xff09;&#xff0c;每次接單都要打電話問調度中心&#xff08;Eureka Server&#xff09;&#xff1a;“現在…