一、什么是會話?
二、Cookie:客戶端存儲技術
1. Cookie的工作原理
一、什么是會話?
????????會話(Session)是指一個用戶與服務器之間的一系列交互過程。從用戶第一次訪問服務器開始,到用戶關閉瀏覽器結束,這個過程稱為一個會話。會話管理的目標是讓服務器能夠“記住”用戶的身份和之前的操作,從而實現有狀態的交互。
????????會話分為兩種類型:
-
有狀態會話(Stateful Session):服務器主動維護用戶的會話狀態信息(如用戶登錄狀態、操作記錄等),并將其存儲在服務端。類似于“服務員記住你的喜好”。
-
無狀態會話(Stateless Session):服務器不存儲用戶狀態信息,所有狀態由客戶端自行管理(如通過URL參數或客戶端存儲)。類似于“服務員不會記住你”。
由于HTTP協議本身是無狀態的,需要借助Cookie和Session技術實現會話管理
????????會話管理:像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。
?