HTTP是無狀態的。
服務器
好處:併發
由於服務器沒有「記憶能力」,因此就不須要額外的資源來記錄狀態信息,不只實現上會簡單一些,並且還能減輕服務器的負擔,可以把更多的 CPU 和內存用來對外提供服務。負載均衡
並且,「無狀態」也表示服務器都是相同的,沒有「狀態」的差別,因此能夠很容易地組成集羣,讓負載均衡把請求轉發到任意一臺服務器,不會由於狀態不一致致使處理出錯,使用「堆機器」的「笨辦法」輕鬆實現高併發高可用。ide
壞處:
高併發
既然服務器沒有「記憶能力」,它就沒法支持須要連續多個步驟的「事務」操做。例如電商購物,首先要登陸,而後添加購物車,再下單、結算、支付,這一系列操做都須要知道用戶的身份才行,但「無狀態」服務器是不知道這些請求是相互關聯的。性能
不過,Cookie 技術能夠解決這個問題。事務
補充:內存
隊頭阻塞資源
請求 - 應答 模式加重了 HTTP 的性能問題,這就是著名的「隊頭阻塞」(Head-of-line blocking)。it
當順序發送的請求序列中的一個請求由於某種緣由被阻塞時,在後面排隊的全部請求也一併被阻塞,會致使客戶端遲遲收不到數據。