HTTP協議是無狀態的

2022-03-08 01:13:14 字數 772 閱讀 9820

無狀態是指協議對於事務處理沒有記憶能力,伺服器不知道客戶端是什麼狀態。從另一方面講,開啟乙個伺服器上的網頁和你之前開啟這個伺服器上的網頁之間沒有任何聯絡

在web應用中,我們使用http協議,但是我們需要的web是有狀態的,因此加入了cookie、session等機制實現有狀態的的web。

web應用=http協議+session、cookies等狀態機制+其他輔助的機制

最初的http協議只是用來瀏覽靜態檔案的,無狀態協議已經足夠,這樣實現的負擔也很輕(相對來說,實現有狀態的代價是很高的,要維護狀態,根據狀態來操作。)。隨著web的發展,它需要變得有狀態,但是不是就要修改http協議使之有狀態呢?是不需要的。因為我們經常長時間逗留在某乙個網頁,然後才進入到另乙個網頁,如果在這兩個頁面之間維持狀態,代價是很高的。其次,歷史讓http無狀態,但是現在對http提出了新的要求,按照軟體領域的通常做法是,保留歷史經驗,在http協議上再加上一層實現我們的目的(「再加上一層,你可以做任何事」)。所以引入了其他機制來實現這種有狀態的連線。

http是乙個無狀態的面向連線的協議,無狀態不代表http不能保持tcp連線,更不能代表http使用的是udp協議(無連線)

從http/1.1起,預設都開啟了keep-alive,保持連線特性,簡單地說,當乙個網頁開啟完成後,客戶端和伺服器之間用於傳輸http資料的tcp連線不會關閉,如果客戶端再次訪問這個伺服器上的網頁,會繼續使用這一條已經建立的連線

keep-alive不會永久保持連線,它有乙個保持時間,可以在不同的伺服器軟體(如apache)中設定這個時間

HTTP協議 無狀態

blog 個人 目錄cookie和session http是一種不儲存狀態,即無狀態 stateless 協議。http協議自身不對請求和響應之間的通訊狀態進行儲存。也就是說在http這個級別,協議對於傳送過的請求或響應都不做持久化處理。可以理解為,瀏覽器傳送請求給伺服器時,伺服器響應請求 但同乙個...

HTTP無狀態協議詳解

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

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

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