HTTP(Hypertext Transfer Protocol)是一種用於在Web瀏覽器和Web伺服器之間傳輸數據的協議。HTTP的版本有很多,其中比較常見的有 HTTP 1.0 、 HTTP 1.1 和 HTTP 2.0 ,它們有各自的特點。 HTTP 1.0 的特點: 1. 每個請求/響應需要 ...
HTTP(Hypertext Transfer Protocol)是一種用於在Web瀏覽器和Web伺服器之間傳輸數據的協議。HTTP的版本有很多,其中比較常見的有 HTTP 1.0 、 HTTP 1.1 和 HTTP 2.0 ,它們有各自的特點。
HTTP 1.0 的特點:
1. 每個請求/響應需要建立新的TCP連接,併在完成後關閉連接,導致較高的延遲。
2. 每個請求只能獲得一個響應,然後連接關閉。
3. 無狀態協議,伺服器不會保留關於客戶端的狀態信息。
4. 不支持持久連接,每次請求都需要重新建立連接,增加了網路開銷。
5. 不支持請求管道化,即客戶端需要等待前一個請求的響應才能發送下一個請求。
HTTP 1.1 的特點:
1. 引入持久連接,允許多個請求和響應在同一個TCP連接上進行,減少了連接的建立和關閉的開銷。
2. 支持請求管道化,客戶端可以發送多個請求而無需等待前一個請求的響應。
3. 引入虛擬主機的概念,允許伺服器使用不同的主機名來托管多個網站,共用同一個IP地址和埠。
4. 增強的緩存機制,引入更多的緩存控制指令,如ETag(實體標簽)和If-Modified-Since(自上次請求後是否有修改)等。
HTTP 2.0 的特點:
1. 採用二進位分幀,將請求和響應分割成多個二進位幀進行傳輸,提高了傳輸效率。
2. 引入多路復用,允許多個請求和響應在同一個TCP連接上同時進行,消除了請求排隊的問題,提高了性能。
3. 頭部壓縮,使用HPACK演算法對請求和響應的頭部進行壓縮,減少了數據傳輸的大小。
4. 伺服器推送,伺服器可以主動向客戶端推送資源,而不需要客戶端明確請求,提高了性能和效率。
5. 引入優先順序和流控制的概念,允許客戶端指定請求的優先順序,併進行流量控制,提高了性能和資源管理能力。
總體而言, HTTP 1.0 到 HTTP 1.1 的改進主要集中在性能和功能的提升上,而 HTTP 2.0 則引入了許多先進的特性,改善了性能、效率和安全性,並適應了現代Web應用的需求。