HTTP1 0和HTTP1 1的一些區別

2022-06-06 06:09:11 字數 1760 閱讀 6201

http1.0和http1.1的一些區別

http1.0最早在網頁中使用是在2023年,那個時候只是使用一些較為簡單的網頁上和網路請求上,而http1.1則在2023年才開始廣泛應用於現在的各大瀏覽器網路請求中,同時http1.1也是當前使用最為廣泛的http協議。 主要區別主要體現在:

快取處理,在http1.0中主要使用header裡的if-modified-since,expires來做為快取判斷的標準,http1.1則引入了更多的快取控制策略例如entity tag,if-unmodified-since, if-match, if-none-match等更多可供選擇的快取頭來控制快取策略。

頻寬優化及網路連線的使用,http1.0中,存在一些浪費頻寬的現象,例如客戶端只是需要某個物件的一部分,而伺服器卻將整個物件送過來了,並且不支援斷點續傳功能,http1.1則在請求頭引入了range頭域,它允許只請求資源的某個部分,即返回碼是206(partial content),這樣就方便了開發者自由的選擇以便於充分利用頻寬和連線。

錯誤通知的管理,在http1.1中新增了24個錯誤狀態響應碼,如409(conflict)表示請求的資源與資源的當前狀態發生衝突;410(gone)表示伺服器上的某個資源被永久性的刪除。

host頭處理,在http1.0中認為每台伺服器都繫結乙個唯一的ip位址,因此,請求訊息中的url並沒有傳遞主機名(hostname)。但隨著虛擬主機技術的發展,在一台物理伺服器上可以存在多個虛擬主機(multi-homed web servers),並且它們共享乙個ip位址。http1.1的請求訊息和響應訊息都應支援host頭域,且請求訊息中如果沒有host頭域會報告乙個錯誤(400 bad request)。

長連線,http 1.1支援長連線(persistentconnection)和請求的流水線(pipelining)處理,在乙個tcp連線上可以傳送多個http請求和響應,減少了建立和關閉連線的消耗和延遲,在http1.1中預設開啟connection: keep-alive,一定程度上彌補了http1.0每次請求都要建立連線的缺點。

http2.0效能驚人

http2.0和http1.x相比的新特性

新的二進位制格式(binary format),http1.x的解析是基於文字。基於文字協議的格式解析存在天然缺陷,文字的表現形式有多樣性,要做到健壯性考慮的場景必然很多,二進位制則不同,只認0和1的組合。基於這種考慮http2.0的協議解析決定採用二進位制格式,實現方便且健壯。

多路復用(multiplexing),即連線共享,即每乙個request都是是用作連線共享機制的。乙個request對應乙個id,這樣乙個連線上可以有多個request,每個連線的request可以隨機的混雜在一起,接收方可以根據request的 id將request再歸屬到各自不同的服務端請求裡面。

header壓縮,如上文中所言,對前面提到過http1.x的header帶有大量資訊,而且每次都要重**送,http2.0使用encoder來減少需要傳輸的header大小,通訊雙方各自cache乙份header fields表,既避免了重複header的傳輸,又減小了需要傳輸的大小。

服務端推送(server push),同spdy一樣,http2.0也具有server push功能。

HTTP1 0 和 HTTP1 1的區別

這個應該是變化最大的乙個了.在1.0的版本中,如果客戶端請求頭沒有設定connection keep alive的話,那麼每次請求完成都會立即斷開連線,然後客戶端又要重新建立乙個http連線.假設乙個網頁包含了10個,那麼為了請求,客戶端必須要傳送10次請求,無疑這對頻寬和資源是極大的浪費,tcp的...

HTTP 1 0 和HTTP 1 1 的區別

區別一 最重要 http 1.1 加入了 1 持久連線 http persistent connections 也稱為 http keep alive,持久連線的特點是,只要任意一端沒有明確提出斷開連線,則保持tcp連線狀態 2 管線化 也叫流水線 pipelining 以前傳送請求後需要等待並且收...

HTTP1 0和HTTP1 1的區別

http 1.0規定瀏覽器與伺服器只保持短暫的連線,瀏覽器每次都需要與伺服器建立乙個tcp連線,伺服器完成請求後,立即斷開tcp連線,也就是說,同乙個客戶第二次訪問同乙個伺服器上的頁面時,伺服器的響應過程與第一次被訪問時是相同的。舉例在收到的html文件後,文件中有10個,每個都要重新再次建立連線獲...