成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

讓面試官顫抖的 HTTP 2.0 協議面試題

網絡 通信技術
Http協議,對于擁有豐富開發經驗的程序員來說簡直是信手拈來,家常便飯。雖然天天見,但是對于http協議的問題,可能很多人在沒有積極準備的情況下,不一定能很好的回答出來。今天,我們就來講講http 2.0和之前版本的區別。

Http協議,對于擁有豐富開發經驗的程序員來說簡直是信手拈來,家常便飯。雖然天天見,但是對于http協議的問題,可能很多人在沒有積極準備的情況下,不一定能很好的回答出來。

[[271469]]

今天,我們就來講講http 2.0和之前版本的區別。

一、HTTP定義

HTTP協議(HyperTextTransferProtocol,超文本傳輸協議)是用于從WWW服務器傳輸超文本到本地瀏覽器的傳輸協議。

二、HTTP發展史

讓面試官顫抖的 HTTP 2.0 協議面試題

三、HTTP 2.0 vs 1.0 性能

HTTP 2.0 的出現,相比于 HTTP 1.x ,大幅度的提升了 web 性能。

讓面試官顫抖的 HTTP 2.0 協議面試題

這是 Akamai 公司建立的一個官方的演示,用以說明 HTTP/2 相比于之前的 HTTP/1.1 在性能上的大幅度提升。 同時請求 379 張圖片,從Load time 的對比可以看出 HTTP/2 在速度上的優勢。

四、HTTP 2.0 和 1.1 區別

后面我們將通過幾個方面來說說HTTP 2.0 和 HTTP1.1 區別,并且和你解釋下其中的原理。

區別一:多路復用

多路復用允許單一的 HTTP/2 連接同時發起多重的請求-響應消息。看個例子:

讓面試官顫抖的 HTTP 2.0 協議面試題

整個訪問流程第一次請求index.html頁面,之后瀏覽器會去請求style.css和scripts.js的文件。左邊的圖是順序加載兩個個文件的,右邊則是并行加載兩個文件。

我們知道HTTP底層其實依賴的是TCP協議,那問題是在同一個連接里面同時發生兩個請求響應著是怎么做到的?

首先你要知道,TCP連接相當于兩根管道(一個用于服務器到客戶端,一個用于客戶端到服務器),管道里面數據傳輸是通過字節碼傳輸,傳輸是有序的,每個字節都是一個一個來傳輸。

例如客戶端要向服務器發送Hello、World兩個單詞,只能是先發送Hello再發送World,沒辦法同時發送這兩個單詞。不然服務器收到的可能就是HWeolrllod(注意是穿插著發過去了,但是順序還是不會亂)。這樣服務器就懵b了。

接上面的問題,能否同時發送Hello和World兩個單詞能,當然也是可以的,可以將數據拆成包,給每個包打上標簽。發的時候是這樣的①H ②W ①e ②o ①l ②r ①l ②l ①o ②d。這樣到了服務器,服務器根據標簽把兩個單詞區分開來。實際的發送效果如下圖:

讓面試官顫抖的 HTTP 2.0 協議面試題

要實現上面的效果我們引入一個新的概念就是:二進制分幀。

二進制分幀層 在 應用層(HTTP/2)和傳輸層(TCP or UDP)之間。HTTP/2并沒有去修改TCP協議而是盡可能的利用TCP的特性。

讓面試官顫抖的 HTTP 2.0 協議面試題

在二進制分幀層中, HTTP/2 會將所有傳輸的信息分割為幀(frame),并對它們采用二進制格式的編碼 ,其中 首部信息會被封裝到 HEADER frame,而相應的 Request Body 則封裝到 DATA frame 里面。

HTTP 性能優化的關鍵并不在于高帶寬,而是低延遲。TCP 連接會隨著時間進行自我「調諧」,起初會限制連接的最大速度,如果數據成功傳輸,會隨著時間的推移提高傳輸的速度。這種調諧則被稱為 TCP 慢啟動。由于這種原因,讓原本就具有突發性和短時性的 HTTP 連接變的十分低效。

HTTP/2 通過讓所有數據流共用同一個連接,可以更有效地使用 TCP 連接,讓高帶寬也能真正的服務于 HTTP 的性能提升。

通過下面兩張圖,我們可以更加深入的認識多路復用:

讓面試官顫抖的 HTTP 2.0 協議面試題

HTTP/1

讓面試官顫抖的 HTTP 2.0 協議面試題

HTTP/2

總結下:多路復用技術:單連接多資源的方式,減少服務端的鏈接壓力,內存占用更少,連接吞吐量更大;由于減少TCP 慢啟動時間,提高傳輸的速度。

區別二:首部壓縮

為什么要壓縮?在 HTTP/1 中,HTTP 請求和響應都是由「狀態行、請求 / 響應頭部、消息主體」三部分組成。一般而言,消息主體都會經過 gzip 壓縮,或者本身傳輸的就是壓縮過后的二進制文件(例如圖片、音頻),但狀態行和頭部卻沒有經過任何壓縮,直接以純文本傳輸。

隨著 Web 功能越來越復雜,每個頁面產生的請求數也越來越多,導致消耗在頭部的流量越來越多,尤其是每次都要傳輸 UserAgent、Cookie 這類不會頻繁變動的內容,完全是一種浪費。

我們再用通俗的語言解釋下,壓縮的原理。頭部壓縮需要在支持 HTTP/2 的瀏覽器和服務端之間。

  • 維護一份相同的靜態字典(Static Table),包含常見的頭部名稱,以及特別常見的頭部名稱與值的組合;
  • 維護一份相同的動態字典(Dynamic Table),可以動態的添加內容;
  • 支持基于靜態哈夫曼碼表的哈夫曼編碼(Huffman Coding);

靜態字典的作用有兩個:

  1. 對于完全匹配的頭部鍵值對,例如 “:method :GET”,可以直接使用一個字符表示;
  2. 對于頭部名稱可以匹配的鍵值對,例如 “cookie :xxxxxxx”,可以將名稱使用一個字符表示。

HTTP/2 中的靜態字典如下(以下只截取了部分,完整表格在這里):

讓面試官顫抖的 HTTP 2.0 協議面試題

同時,瀏覽器和服務端都可以向動態字典中添加鍵值對,之后這個鍵值對就可以使用一個字符表示了。需要注意的是,動態字典上下文有關,需要為每個 HTTP/2 連接維護不同的字典。在傳輸過程中使用,使用字符代替鍵值對大大減少傳輸的數據量。

區別三:HTTP2支持服務器推送

服務端推送是一種在客戶端請求之前發送數據的機制。當代網頁使用了許多資源:HTML、樣式表、腳本、圖片等等。在HTTP/1.x中這些資源每一個都必須明確地請求。這可能是一個很慢的過程。瀏覽器從獲取HTML開始,然后在它解析和評估頁面的時候,增量地獲取更多的資源。因為服務器必須等待瀏覽器做每一個請求,網絡經常是空閑的和未充分使用的。

為了改善延遲,HTTP/2引入了server push,它允許服務端推送資源給瀏覽器,在瀏覽器明確地請求之前。一個服務器經常知道一個頁面需要很多附加資源,在它響應瀏覽器第一個請求的時候,可以開始推送這些資源。這允許服務端去完全充分地利用一個可能空閑的網絡,改善頁面加載時間。

讓面試官顫抖的 HTTP 2.0 協議面試題
責任編輯:未麗燕 來源: 今日頭條
相關推薦

2019-04-29 14:59:41

Tomcat系統架構

2018-05-10 15:48:47

面試面試官Java

2018-04-13 14:53:13

PythonMySQL爬蟲

2020-04-20 08:35:48

HTTP HTTPS網絡協議

2015-08-13 10:29:12

面試面試官

2021-05-12 08:20:53

開發

2021-05-18 08:32:33

TCPIP協議

2020-06-22 11:50:38

TCPIP協議

2018-12-12 09:04:02

Tomcat系統架構

2021-01-14 05:12:19

Http協議面試

2022-05-23 08:43:02

BigIntJavaScript內置對象

2021-01-18 05:13:04

TomcatHttp

2023-11-10 08:44:13

分布式鎖分布式系統

2021-05-27 05:37:10

HTTP請求頭瀏覽器

2020-06-04 14:40:40

面試題Vue前端

2014-09-19 11:17:48

面試題

2021-12-13 09:02:13

localStorag面試前端

2021-02-06 09:21:17

MySQL索引面試

2018-10-22 14:28:26

面試官數據公司

2023-11-13 07:37:36

JS面試題線程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线观看亚洲专区 | 午夜久久久 | 天天草天天爱 | 暴草美女| 亚洲精品av在线 | 国产精品久久久久久亚洲调教 | 麻豆久久久久久 | 欧洲妇女成人淫片aaa视频 | h漫在线观看 | 免费观看羞羞视频网站 | 一级毛片视频 | 男女性毛片 | 91一区二区 | 91高清在线观看 | 麻豆精品久久久 | 先锋资源网 | 黄色在线观看网站 | 欧洲亚洲精品久久久久 | 国产精品久久一区二区三区 | 日本不卡免费新一二三区 | 黄色大片视频 | 国产免费一区二区三区 | www国产成人免费观看视频 | 91久久精品一区 | 精品成人佐山爱一区二区 | 国产成人午夜精品影院游乐网 | 久久国产精品偷 | 亚洲激情综合 | 国产精品免费一区二区三区四区 | av一区二区三区 | 国产精品久久久久久久久久久久冷 | 91网在线观看 | 欧美日韩一区二区三区四区 | 国产xxxx搡xxxxx搡麻豆 | 一级黄色毛片免费 | 欧美婷婷 | 国产wwwcom | 91精品久久久久久综合五月天 | 伊人色综合久久天天五月婷 | 亚洲视频免费观看 | 亚洲一区二区免费视频 |