1. 程式人生 > >HTTP 2.0與HTTP 1.1的區別

HTTP 2.0與HTTP 1.1的區別

1、什麼是HTTP 2.0

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

2、與HTTP 1.1相比,主要區別包括

  1. HTTP/2採用二進位制格式而非文字格式
  2. HTTP/2是完全多路複用的,而非有序並阻塞的——只需一個連線即可實現並行
  3. 使用報頭壓縮,HTTP/2降低了開銷
  4. HTTP/2讓伺服器可以將響應主動“推送”到客戶端快取中

3、HTTP/2為什麼是二進位制?

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

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

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



5、訊息頭為什麼需要壓縮?

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

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

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

7、參考資料

相關推薦

HTTP 2.0HTTP 1.1區別

1、什麼是HTTP 2.0 HTTP/2(超文字傳輸協議第2版,最初命名為HTTP 2.0),是HTTP協議的的第二個主要版本,使用於全球資訊網。HTTP/2是HTTP協議自1999年HTTP 1.1釋出後的首個更新,主要基於SPDY協議(是Google開發的基於TCP的應用層協議,用以最小化網路延遲,提升

等保2.0等保1.0的變化

  一、基本要求的名稱變更   等保1.0的名稱為《資訊保安技術 資訊系統安全等級保護基本要求》   等保2.0的名稱為《資訊保安技術 網路安全等級保護基本要求》(與《網路安全法》中的相關法律條文保持一致) 二、定級物件的變化   安全等級保護的物件包括網路基礎設施(廣電網、電信網、專用通訊網路等)

13. HTTP1.0 HTTP 1.1 HTTP 2.0主要區別

HTTP1.0 HTTP 1.1 HTTP 2.0主要區別 HTTP1.0 HTTP 1.1主要區別 長連線 節約頻寬 HOST域 HTTP1.1 HTTP 2.0主要區別

HTTP1.0HTTP 1.1HTTP 2.0主要區別

HTTP1.0、HTTP 1.1、HTTP 2.0之間的主要區別 HTTP1.0與HTTP 1.1的主要區別 長連線 節約頻寬 HOST域 HTTP1.1與HTTP 2.0的主要區別 多路複用 二進位制分幀 首部壓縮 伺服器推送 一、HTTP1.0

HTTP1.0 HTTP 1.1 HTTP 2.0主要區別

HTTP1.0 HTTP 1.1主要區別 長連線 HTTP 1.0需要使用keep-alive引數來告知伺服器端要建立一個長連線,而HTTP1.1預設支援長連線。 HTTP是基於TCP/IP協議的,建立一個TCP連線是需要經過三次握手的,有一定的開銷,如果每次通

Gratry-1.2.0 1.1.1 釋出,更加泛用的 Aop 支援

   簡介:         Gadtry 是一個構建於java8之上的工具庫, 涵蓋了Ioc Aop exec graph等等工具庫,幾乎涵蓋了日常開發中非常多工具類,當然它還在不斷豐富中. Ga

Cocos2d-2.01.0版本的一些差異

剛剛學習Cocos2d,遇到某個差異就紀錄下! 1、設定螢幕方向 V1.0中:[[CCDirector sharedDirector] setDeviceOrientation:CCDeviceOrientationLandscapeLeft]; V2.0中:在AppDe

leetcode-1:python基礎,迴圈、條件、列表、字典的應用,enumerate、range函式以及2.0和3.0print的區別

題目: Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each

HTTP 2.0 原理詳細分析

target all src coo rime 導致 -a charset afa HTTP 2.0是在SPDY(An experimental protocol for a faster web, The Chromium Projects)基礎上形成的下一代互聯網通信協

springboot 2.0整合activiti(1

springboot 2.0整合activiti(1) 踩坑經歷 增加Maven依賴 生成activiti資料表 踩坑經歷 截止到現在activiti7只有beta版本,嘗試採用activiti6完成工作流任務。

2018年12月7日 字符串格式化2 format函數1

ron none love img 小數位 mage alt abc 格式 tp7="i am \033[44;1m %(name)-25.6s\033[0m"%{"name":"sxj2343333"} print(tp7) #-為左對齊,\033[44;1m \

HTTP 2.0

HTTP 1.1 在應用層以純文字的形式進行通訊,HTTP1.1雖然它是個長連線,但在連線中傳送的多個請求還是會順序處理。這樣的話一旦有一個請求處理很久的話,那後面的請求就會被阻塞,在實時性、併發性上都存在問題。 為了解決這些問題,HTTP 2.0 會對 HTTP 的頭進行一定的壓縮,將原來每次

springboot 2.0.3.RELEASE + druid 1.1.10 多資料來源(可用讀寫分離) + mysql + ssm搭建

開始,先上一張專案總體圖片:1、springboot熱部署中idea配置、怎樣一步一步搭建就不說了。2、用到的技術點:springboot全域性異常處理,springboot熱部署,aop,ssm,mysql,druid sql監控,druid多資料來源切換(可以做讀寫分離)

深入Nginx之《HTTP請求報文HTTP響應報文》

分組 value align 後端服務 請求超時 odin cep 問題 ati HTTP請求報文 這個很有必要了解,好歹我們得知道Nginx在提供HTTP服務時,客戶端都會傳些什麽。HTTP請求中客戶端傳送的內容稱為HTTP請求報文。 1、請求行包含: 請

AndroidStudio3.0之前版本主要區別

dependencies {        //3.0 之前     compile 'com.android.support:appcompat-v7:26.1.0'     compile fileTree(include: ['*.jar'], dir: 'libs

【閒談】GPL3.0、Apache LICENSE 2.0 和 MIT LICENSE的區別

昨天寫了一下Git連線GitHub,這裡涉及到了GitHub,而GitHub作為一個開源社群,又涉及到了許可證的問題。當然,國內目前大部分人還是不在乎這個的。因為在國內,這些東西有和沒有,影響不大。 主要就是這三大許可證GPL3.0、Apache LICENSE 2.0 和

通俗易懂客戶端伺服器端互動原理(HTTP資料請求HTTP響應,包括Servlet部分)

經常看到HTTP客戶端與伺服器端互動原理的各種版本的文章,但是專業術語太多,且流程過於複雜,不容易消化。於是就按照在 Servlet 裡面的內容大致做了一些穿插。本來 連 Tomcat 容器 和 Servlet 的生命週期也準備在這裡一起寫的,但怕過去龐大,於是就簡單的 引用

Meta http-equiv屬性HTTP頭的Expires中(Cache-control)詳解

一、概述 A、http-equiv顧名思義,相當於http的檔案頭作用,它可以向瀏覽器傳回一些有用的資訊,以幫助正確和精確地顯示網頁內容,與之對應的屬性值為content,content中的內容其實就是各個引數的變數值。 B、Cache-control用於控制HTTP快取

HTTP請求方法HTTP訊息結構

HTTP是基於客戶端/服務端(C/S)的架構模型,通過一個可靠的連結來交換資訊,是一個無狀態的請求/響應協議。 一個HTTP"客戶端"是一個應用程式(Web瀏覽器或其他任何客戶端),通過連線到伺服器達到向伺服器傳送一個或多個HTTP的請求的目的。 一個HTTP"伺服器"同樣也是一個應用程式(通常是一個Web

Python 2.x Python3.x 主要區別對照表

Python2                 Python3print是內建命令           print變為函式 print >> f,x,y          print(x,y,file=f) print x,                print(x,end='') relo