HTTP協議 無狀態

2022-06-17 06:00:11 字數 866 閱讀 1667

blog:

個人

目錄cookie和session

http是一種不儲存狀態,即無狀態(stateless)協議。http協議自身不對請求和響應之間的通訊狀態進行儲存。也就是說在http這個級別,協議對於傳送過的請求或響應都不做持久化處理。

可以理解為,瀏覽器傳送請求給伺服器時,伺服器響應請求;但同乙個瀏覽器再次請求時,伺服器不知道這次請求的瀏覽器是否為上次那個瀏覽器,也就是伺服器沒有記憶瀏覽器的特徵。

舉個例子,老王在隔壁開了一家飯店,小明聽說後就想嚐嚐這家飯店的手藝。吃完覺得還不錯,決定明天再去。

第二天,小明又去了飯店,結賬的時候跟老闆說:我昨天來消費過,今天可否給個優惠?

無狀態(stateless)

老闆答:你昨天來過嗎?我沒有印象了,抱歉不能給你優惠。

有狀態(stateful)

為了更好地吸引老顧客,維護好客源,老闆決定把每個顧客記錄下來。

總結由上可知,這個狀態就是客戶端的狀態。

如何儲存客戶端的狀態?實現的方式有兩種,分別是cookie和session。

cookie是通過客戶端保持狀態的解決方案。

從定義上來說,cookie就是由伺服器發給客戶端的特殊資訊,而這些資訊以文字檔案的方式存放在客戶端,然後客戶端每次向伺服器傳送請求的時候都會帶上這些特殊的資訊。

session是通過伺服器來保持狀態的。

session指的是伺服器端為客戶端所開闢的儲存空間,在其中儲存的資訊就是用於保持狀態。

客戶端第一次訪問時,伺服器會為這個客戶端建立唯一特徵碼,也就是sessionid,客戶端再次請求的時候,伺服器會根據sessionid在服務端的資料庫中查詢,若有這個sessionid,則會做出相應響應。

HTTP無狀態協議詳解

概述 http協議是無狀態的。無狀態是指協議對於事務處理沒有記憶能力,這意味著如果後續處理需要前面的資訊,則它必須重傳,這樣可能導致每次連線傳送的資料量增大。無狀態的根本原因是 瀏覽器與伺服器是使用socket套接字進行通訊的,伺服器將請求結果返回給瀏覽器之後,會關閉當前的socket連線,而且伺服...

HTTP無狀態協議和Connection長 短連線

目錄 http無狀態協議 connection 短連線 長連線 1 定義 無狀態是指協議對於事務處理沒有記憶能力,伺服器不知道客戶端是什麼狀態。從另一方面講,開啟乙個伺服器上的網頁和你之前開啟這個伺服器上的網頁之間沒有任何聯絡。2 優點 伺服器不用為每個客戶端連線分配記憶體來記憶大量狀態,也不用在客...

http協議 無連線 無狀態

無連線的含義是限制每次連線只處理乙個請求。伺服器處理完客戶的請求,並收到客戶的應答後,即斷開連線。採用這種方式可以節省傳輸時間。早期這麼做的原因是 http 協議產生於網際網路,因此伺服器需要處理同時面向全世界數十萬 上百萬客戶端的網頁訪問,但每個客戶端 即瀏覽器 與伺服器之間交換資料的間歇性較大 ...