2016-07-26 62 views
0

有人說HTTP沒有會話的概念,因爲HTTP是無狀態的。 這是真的嗎?這是爲什麼?爲什麼HTTP沒有會話的概念?

謝謝。

+2

可能的重複[爲什麼說HTTP是無狀態協議?](http://stackoverflow.com/questions/13200152/why-say-that-http-is-a-stateless-protocol) –

+0

誰說的?如果你不相信,你爲什麼在意? –

+0

這是上述問題的明顯重複。 –

回答

1

這是在HTTP設計期間做出的設計決定。動機似乎是可擴展性和響應時間。如果一個Web服務器服務於1億併發用戶,並且每個用戶需要存儲100bytes的狀態信息,那麼這將是10GB的信息,這些信息需要在真實(讀取RAM)時間內查詢並在給出響應之前進行處理。這是協議設計時的一個主要挑戰。除了當HTTP主動爲用戶提供服務時出現的這個問題之外,保持狀態信息會在設置新請求(分配空間,綁定到會話等)和錯誤處理(例如用戶關閉他的瀏覽器在中間)等等。作爲例子,TCP(運行HTTP)具有會話概念。在設計加速TCP的解決方案時,發現設置,拆除和錯誤處理是加速實現數據傳輸更加容易的最難的部分。

也就是說,cookies在客戶端存儲信息並創建會話的印象。