http協議一共有五大特點,1、支援客戶/伺服器模式;2、簡單快速;3、靈活;4、無連線;5、無狀態。其中無狀態是其中主要特點之一。因此,常說
http是乙個無狀態協議。所謂的無狀態是指協議對於事務處理沒有記憶能力。
伺服器向客戶機傳送被請求的檔案時,並不儲存任何關於該客戶機的狀態資訊。而無連線又是
什麼呢?發現很多地方,將http的無連線與無狀態混為一團,讓初學者一時陷入霧水(比如我剛開始就很沒有區別開),有必要總結一下。
舉個例子來說,就是假如某個客戶機在短時間多次次請求同乙個資源,伺服器並不能區別是否已經響應過使用者的請求,反而每次都不耐其煩重新響應請求。我們都知道http每次響應請求,則要發起乙個到伺服器的tcp連線,http與伺服器之間建立乙個連線,而tcp建立連線涉及乙個「三次握手」的過程。這針對大流量的的伺服器來說,開銷是相當大的。這說明是http無狀態帶來的缺點,當然http協議無狀態也是有很多優點的。
針對http無連線,人們設計了
非持久連線和持久連線。
實際上關於http協議非持久連線和持久連線是針對tcp協議的。當客戶機/伺服器的互動執行於tcp協議上時,應用程式的每個請求/響應對是經乙個單獨的tcp連線,則該應用程式使用非持久連線,而當應用程式的每個請求/響應對是經相同的tcp連線傳送,則該應用程式使用持久連線。
非持久連線:請求乙個http請求/響應需要的總時間為客戶端發出建立連線和發生請求報文+伺服器傳輸html檔案的時間。
持久連線:伺服器在傳送響應後,保持該tcp連線開啟。在相同的客戶機與伺服器之間的後續請求和響應報文通過相同的連線進行傳送。不需要再次建立tcp連線
所謂http是無狀態協議,言外之意是說http協議沒法儲存客戶機資訊,也就沒法區分每次請求的不同之處。
關於http無狀態
阻礙了互動式應用程式的實現。
比如記錄使用者瀏覽哪些網頁、判斷使用者是否擁有許可權訪問等。於是,兩種用於保持http狀態的技術就應運而生了,乙個是cookie,而另乙個則是session。
HTTP協議之無連線與無狀態
http協議一共有五大特點,1 支援客戶 伺服器模式 2 簡單快速 3 靈活 4 無連線 5 無狀態。其中無狀態是其中主要特點之一。因此,常說http是乙個無狀態協議。所謂的無狀態是指協議對於事務處理沒有記憶能力。伺服器向客戶機傳送被請求的檔案時,並不儲存任何關於該客戶機的狀態資訊。而無連線又是什麼...
http協議 無連線 無狀態
無連線的含義是限制每次連線只處理乙個請求。伺服器處理完客戶的請求,並收到客戶的應答後,即斷開連線。採用這種方式可以節省傳輸時間。早期這麼做的原因是 http 協議產生於網際網路,因此伺服器需要處理同時面向全世界數十萬 上百萬客戶端的網頁訪問,但每個客戶端 即瀏覽器 與伺服器之間交換資料的間歇性較大 ...
HTTP協議 無狀態
blog 個人 目錄cookie和session http是一種不儲存狀態,即無狀態 stateless 協議。http協議自身不對請求和響應之間的通訊狀態進行儲存。也就是說在http這個級別,協議對於傳送過的請求或響應都不做持久化處理。可以理解為,瀏覽器傳送請求給伺服器時,伺服器響應請求 但同乙個...