HTTP協議各個版本介紹


HTTP協議版本更替

HTTP/0.9

        HTTP協議的最初版本,功能簡陋,僅支持請求方式GET,並且僅能請求訪問HTML格式的資源。

HTTP/1.0    

        在0.9版本上做了進步,增加了請求方式POST和HEAD;不再局限於0.9版本的HTML格式,根據Content-Type可以支持多種數據格式,即MIME多用途互聯網郵件擴展,例如text/html、image/jpeg等;同時也開始支持cache,就是當客戶端在規定時間內訪問統一網站,直接訪問cache即可。

        但是1.0版本的工作方式是每次TCP連接只能發送一個請求,當服務器響應后就會關閉這次連接,下一個請求需要再次建立TCP連接,就是不支持keepalive。

HTTP/1.1    

        解決了1.0版本的keepalive問題,1.1版本加入了持久連接,一個TCP連接可以允許多個HTTP請求; 加入了管道機制,一個TCP連接同時允許多個請求同時發送,增加了並發性;新增了請求方式PUT、PATCH、DELETE等。

        但是還存在一些問題,服務端是按隊列順序處理請求的,假如一個請求處理時間很長,則會導致后邊的請求無法處理,這樣就造成了隊頭阻塞的問題;同時HTTP是無狀態的連接,因此每次請求都需要添加重復的字段,降低了帶寬的利用率。

HTTP/2.0

        為了解決1.1版本利用率不高的問題,提出了HTTP/2.0版本。增加雙工模式,即不僅客戶端能夠同時發送多個請求,服務端也能同時處理多個請求,解決了隊頭堵塞的問題;HTTP請求和響應中,狀態行和請求/響應頭都是些信息字段,並沒有真正的數據,因此在2.0版本中將所有的信息字段建立一張表,為表中的每個字段建立索引,客戶端和服務端共同使用這個表,他們之間就以索引號來表示信息字段,這樣就避免了1.0舊版本的重復繁瑣的字段,並以壓縮的方式傳輸,提高利用率。

        另外也增加服務器推送的功能,即不經請求服務端主動向客戶端發送數據。

當前主流的協議版本還是HTTP/1.1版本。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM