首頁 常見問題 http2.0與http1.1區別

http2.0與http1.1區別

Jun 03, 2019 am 11:04 AM
http

什麼是HTTP 2.0?

HTTP/2(超文本傳輸協定第2版,最初命名為HTTP 2.0),是HTTP協定的第二個主要版本,使用於萬維網。 HTTP/2是HTTP協議自1999年HTTP 1.1發布後的首個更新,主要基於SPDY協議(是Google開發的基於TCP的應用層協議,用以最小化網絡延遲,提升網絡速度,優化用戶的網絡使用體驗)。

http2.0與http1.1區別

與HTTP 1.1相比,主要差異包括:

HTTP/2採用二進位格式而非文字格式

HTTP/2是完全多路復用的,而非有序且阻塞的-只需一個連接即可實現並行

使用標頭壓縮,HTTP/2降低了開銷

HTTP/2讓伺服器可以將回應主動「推送」到客戶端快取中

推薦課程:PHP教學

HTTP/2為什麼是二進位?

比起像HTTP/1.x這樣的文字協議,二進位協議解析起來更有效率、「線上」更緊湊,更重要的是錯誤更少。

為什麼HTTP/2 需要多路傳輸?

#HTTP/1.x 有個問題叫線端阻塞(head-of-line blocking) , 它是指一個連線(connection)一次只提交一個請求的效率比較高, 多了就會變慢。 HTTP/1.1 試過用管線(pipelining)來解決這個問題, 但是效果並不理想(資料量較大或速度較慢的回應, 會阻礙排在他後面的請求). 此外, 由於網路媒介(intermediary )和伺服器不能很好的支援流水線, 導致部署起來困難重重。而多路傳輸(Multiplexing)能很好的解決這些問題, 因為它能同時處理多個訊息的請求和回應; 甚至可以在傳輸過程中將一個訊息跟另外一個摻雜在一起。所以客戶端只需要一個連線就能載入一個頁面。

訊息頭為什麼需要壓縮?

假定一個頁面有80個資源需要載入(這個數量對於今天的Web而言還是挺保守的) , 而每一次請求都有1400字節的消息頭(著同樣也並不少見,因為Cookie和引用等東西的存在), 至少要7到8個來回“在線”獲得這些消息頭。這還不包括回應時間——那隻是從客戶端獲取到它們所花的時間而已。這全都由於TCP的慢啟動機制,它會基於對已知有多少個包,來確定還要來回獲取哪些包 – 這很明顯的限制了最初的幾個來回可以發送的數據包的數量。相較之下,即使是頭部輕微的壓縮也可以是讓那些請求只需一個來回就能搞定——有時甚至一個包就可以了。這種開銷是可以被節省下來的,特別是當你考慮到行動用戶端應用的時候,即使是良好條件下,一般也會看到幾百毫秒的來回延遲。

伺服器推送的好處是什麼?

當瀏覽器要求網頁時,伺服器將會傳回HTML,在伺服器開始傳送JavaScript、圖片和CSS前,伺服器需要等待瀏覽器解析HTML並傳送所有內嵌資源的請求。伺服器推播服務透過「推送」那些它認為客戶端將會需要的內容到客戶端的快取中,以此來避免往返的延遲。

以上是http2.0與http1.1區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1677
14
CakePHP 教程
1431
52
Laravel 教程
1334
25
PHP教程
1280
29
C# 教程
1257
24
http狀態碼520是什麼意思 http狀態碼520是什麼意思 Oct 13, 2023 pm 03:11 PM

http狀態碼520是指伺服器在處理請求時遇到了一個未知的錯誤,無法提供更具體的資訊。用於表示伺服器在處理請求時發生了一個未知的錯誤,可能是由於伺服器配置問題、網路問題或其他未知原因導致的。通常是由伺服器配置問題、網路問題、伺服器過載或程式碼錯誤等原因導致的。如果遇到狀態碼520錯誤,最好聯絡網站管理員或技術支援團隊以取得更多的資訊和協助。

http狀態碼403是什麼 http狀態碼403是什麼 Oct 07, 2023 pm 02:04 PM

http狀態碼403是伺服器拒絕了客戶端的請求的意思。解決http狀態碼403的方法是:1、檢查身份驗證憑證,如果伺服器要求身份驗證,確保提供正確的憑證;2、檢查IP位址限制,如果伺服器對IP位址進行了限制,確保客戶端的IP位址被列入白名單或未列入黑名單;3、檢查文件權限設置,如果403狀態碼與文件或目錄的權限設置有關,確保客戶端具有足夠的權限訪問這些文件或目錄等等。

瞭解網頁重定向的常見應用場景並了解HTTP301狀態碼 瞭解網頁重定向的常見應用場景並了解HTTP301狀態碼 Feb 18, 2024 pm 08:41 PM

掌握HTTP301狀態碼的意思:網頁重定向的常見應用場景隨著網路的快速發展,人們對網頁互動的要求也越來越高。在網頁設計領域,網頁重定向是一種常見且重要的技術,透過HTTP301狀態碼來實現。本文將探討HTTP301狀態碼的意義以及在網頁重新導向中的常見應用場景。 HTTP301狀態碼是指永久重新導向(PermanentRedirect)。當伺服器接收到客戶端發

HTTP 200 OK:了解成功回應的意義與用途 HTTP 200 OK:了解成功回應的意義與用途 Dec 26, 2023 am 10:25 AM

HTTP狀態碼200:探索成功回應的意義與用途HTTP狀態碼是用來表示伺服器回應狀態的數字代碼。其中,狀態碼200表示請求已成功被伺服器處理。本文將探討HTTP狀態碼200的具體意義與用途。首先,讓我們來了解HTTP狀態碼的分類。狀態碼分為五個類別,分別是1xx、2xx、3xx、4xx和5xx。其中,2xx表示成功的回應。而200是2xx中最常見的狀態碼

如何使用Nginx Proxy Manager實現HTTP到HTTPS的自動跳轉 如何使用Nginx Proxy Manager實現HTTP到HTTPS的自動跳轉 Sep 26, 2023 am 11:19 AM

如何使用NginxProxyManager實現HTTP到HTTPS的自動跳轉隨著互聯網的發展,越來越多的網站開始採用HTTPS協議來加密傳輸數據,以提高數據的安全性和用戶的隱私保護。由於HTTPS協定需要SSL憑證的支持,因此在部署HTTPS協定時需要有一定的技術支援。 Nginx是一款強大且常用的HTTP伺服器和反向代理伺服器,而NginxProxy

使用http.PostForm函數傳送帶有表單資料的POST請求 使用http.PostForm函數傳送帶有表單資料的POST請求 Jul 25, 2023 pm 10:51 PM

使用http.PostForm函數發送帶有表單資料的POST請求在Go語言的http包中,可以使用http.PostForm函數發送帶有表單資料的POST請求。 http.PostForm函數的原型如下:funcPostForm(urlstring,dataurl.Values)(resp*http.Response,errerror)其中,u

快速應用:PHP 非同步 HTTP 下載多個檔案的實用開發案例分析 快速應用:PHP 非同步 HTTP 下載多個檔案的實用開發案例分析 Sep 12, 2023 pm 01:15 PM

快速應用:PHP非同步HTTP下載多個檔案的實用開發案例分析隨著互聯網的發展,檔案下載功能已成為許多網站和應用程式的基本需求之一。而對於需要同時下載多個檔案的場景,傳統的同步下載方式往往效率低且耗費時間。為此,使用PHP非同步HTTP下載多個檔案成為了越來越常見的解決方案。本文將透過一個實際的開發案例,詳細分析如何使用PHP非同步HTTP

http請求415錯誤解決方法 http請求415錯誤解決方法 Nov 14, 2023 am 10:49 AM

解決方法:1、檢查請求頭中的Content-Type;2、檢查請求體中的資料格式;3、使用適當的編碼格式;4、使用適當的請求方法;5、檢查伺服器端的支援。