我在想,HTTP是無狀態的,而它是通過TCP建立的,是有狀態的? 我還是一個初級的后臺工程師,我對這個問題沒有堅實的理解。 我試著搜索了一些解釋,但我不確定這個問題以前是否有人問過。
uj5u.com熱心網友回復:
有傳輸層(TCP)狀態和應用層(HTTP)狀態。
當談到TCP是有狀態的時候,就是在談論傳輸層的狀態。TCP是有狀態的,因為需要一個由當前序列號等組成的傳輸層狀態來提供TCP的可靠性保證,即資料包的排序、洗掉重復資料、確認和重傳。因此,需要一個跨越多個 "單元"(資料包)的狀態。
在HTTP中,這個單元是HTTP訊息,即來自客戶端的HTTP請求和來自服務器的HTTP回應。當談到HTTP是無狀態的時候,它意味著HTTP協議內部不需要跨越多個此類訊息的狀態:回應嚴格遵循請求,并且不存在涵蓋多個請求或回應的狀態--從HTTP的角度來看,所有請求都是相互獨立的。
在網路應用本身中,通常需要一些狀態,如用戶會話。這些狀態是在HTTP之上實作的,通常在請求之間共享cookie。然后,這些狀態獨立于特定的 HTTP 請求,也獨立于底層的 TCP 連接。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/311853.html
標籤:
