HTTP協議從0.9-2.0的變化

HTTP是咱們前端賴以存在的基礎,HTTP協議一直在變化,咱們又是否真的瞭解HTTP協議呢?下面一塊兒學習HTTP協議的變化,瞭解HTTP協議不一樣版本改進的地方。前端

HTTP/0.9

HTTP/0.9是最先的版本,確認了HTTP基於TCP協議。這個版本只支持GET一個方法,且服務器只能返回HTML格式的字符串。緩存

HTTP/1.0

HTTP-1.0新增了許多內容,包括支持不一樣類型的響應格式,例如圖像、視頻等等。新增了HEAD和POST請求方法,補充了響應狀態碼,權限,緩存等功能。安全

HTTP/1.1

HTTP/1.1引入了持久連接以及管道機制。服務器

HTTP/2.0

HTTP/2.0引入了二進制,多路複用,服務器推送(socket),數據流和頭信息壓縮優化。socket

HTTP/3.0

HTTP/3.0聽說引入了新的協議(QUIC),該協議解決了之前TCP協議所存在的問題,而且極大的提高了性能與安全性。性能

不一樣版本解決的問題

0.9 --> 1.0

從0.9到1.0版本,HTTP協議的變化極大豐富了前端頁面能夠交互的內容,在最先的時候可能咱們所看到的只有一個純文本的頁面,可是到了1.0版本,新增了圖像、音頻等新的響應內容,前端可交互的內容變得更加豐富了。學習

1.0 --> 1.1

在1.0版本,由於每一個TCP只能發送一個請求,發送數據以後鏈接就會關閉;每次發送新的請求就須要創建一個新的鏈接,而創建一個新的鏈接成本很是高昂,由此產生了鏈接沒法複用的問題,存在性能問題。1.1版本引入的持久鏈接容許一個請求在數據返回以後保留一段時間,和管道機制容許咱們同時發送多個請求。優化

1.1 --> 2.0

在1.1版本引入的管道機制容許咱們同時發送多個請求,例如同時發送A和B請求,可是服務器仍是會按照順序先處理A請求,等A響應後再處理B請求,由此產生了咱們所說的線頭阻塞(Head-of-line blocking)問題。若是第一個響應處理很是久,則會致使後面的請求必須等待前面的請求處理完以後才能獲得響應。視頻

因此在2.0版本引入的多路複用和數據流容許咱們不會受到前面處理很是耗時的請求影響,能夠分優先級處理響應。同時引入了服務器推送(socket)增長了客戶端與服務器雙向通訊的能力。字符串

相關文章
相關標籤/搜索