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

五分鐘技術趣談 | HTTP演進史

網絡
本文從整體出發對主要的部分做粗淺的闡述,如果對某個點很感興趣,可以查閱相關代碼和RFC文檔。

Part 01

協議簡介 

HTTP協議是當今最流行的一種網絡協議,在日常生活中隨處可見,無論使用手機、電腦還是其它終端設備,windows、IOS或是Android,瀏覽器或是APP,這背后的網絡通訊都離不開它。HTTP采用客戶端-服務端之間請求和應答的架構設計,是一種能夠獲取如 HTML這樣的網絡資源的通訊協議,是在 Web 上進行數據交換的基礎。

Part 02

發展歷程 

HTTP協議自1989年被英國工程師和計算機科學家蒂姆·伯納斯·李提出后,至今經歷30多年的演進,形成了五個主要版本,如下圖所示:

2.1 HTTP/0.9

作為鼻祖版本,奠定了協議的核心內容,如確定了客戶端-服務端交互的架構,域名:端口來確定目標地址,還有回車換行作為基本的分隔符等。

0.9版本功能上只相當于后續版本的一個小小子集,不支持Header,僅支持GET方法,服務器只能回應HTML格式的字符串,不能響應別的格式。具有典型的無狀態性,每個訪問都獨立處理,處理完成后就會關閉TCP連接。

2.2 HTTP/1.0

1.0版本在0.9版本基礎上做了大量的擴展,增加了POST和HEAD方法,引入了請求頭、返回碼,還支持了多字符集和多行請求,傳輸不僅僅局限于文本能力,如圖像、視頻、二進制文件。可謂是麻雀雖小五臟俱全,是第一個具備廣泛實際應用價值的協議版本。

1.0版本與0.9版本存在相同的缺陷,由于都是無狀態連接,建立的TCP連接不能被復用,并且前一個請求響應到達之后下一個請求才能發送,容易造成隊頭阻塞影響性能。

2.3 HTTP/1.1

1.1版本在1.0版本上做了功能擴展以及傳輸性能的優化。

功能包括新增了PUT、PATCH、OPTIONS、DELETE方法,豐富了響應狀態碼,引入了range斷點續傳,增加了TLS的支持,以及更多的連接模型支持,如短連接、長連接、websocket模型等;此外還引入了Host請求頭,用來指定服務器域名,這樣一臺主機上就可以部署多個域名服務端,這為虛擬化技術的興起打下了堅實的基礎。

性能方面引入長連接,設置請求頭Connection: keep-alive可以保持連接不斷開,使得連接能被多個請求復用,但每個請求是串行執行,仍然存在隊頭阻塞問題。為了優化該問題,在長連接的基礎上引入了管道化技術,可以不等待上一個請求響應而繼續發送后續的請求,進一步提升傳輸效率,然而服務端響應是嚴格按照順序返回的,隊頭阻塞問題依然沒有解決。

2.4 HTTP/2.0

2.0版本與其說是對1.x版本的優化,倒不如說是一次革新,主要的調整主要包含:二進制化分幀、多路復用、頭部壓縮、服務端推送。

- 二進制化分幀

1.x是文本協議,然而2.0是以二進制幀為基本單位,將所有傳輸的信息分割為消息和幀,并采用二進制格式的編碼,一幀中包含數據和標識符,使得網絡傳輸變得高效而靈活。

- 多路復用

1.x中建立多個連接的消耗以及效率都存在問題,2.0版本借助于二進制幀中的標識進行區分,實現多個請求可以同時在一個TCP連接上并發的鏈路復用。

- 頭部壓縮

1.1版本每次發送請求都要帶相同的header,2.0版本使用HPACK算法對header進行壓縮,且對header信息進行增量更新,有效減少了數據量從而提高了傳輸效率。

- 服務端推送

和1.x版本采用的一問一答交互模式不同,2.0版本允許服務器主動向客戶端發送資源,從而可以有效減少額外的延遲時間。

HTTP/2.0的傳輸示意圖如下所示:

圖片

2.0版本雖然大幅提升了1.1版本的性能,然而基于TCP的實現卻遺留下3個問題:

1.有序字節流引出的隊頭阻塞,使得2.0版本的多路復用能力大打折扣;

2.TCP與TLS疊加了握手時延,建連接時長還有1倍的下降空間;

3. 基于TCP四元組確定一個連接,這種誕生于有線網絡的設計,并不適合移動狀態下的無線網絡,這意味著IP地址的頻繁變動會導致TCP連接、TLS會話反復握手,成本高昂。

2.5 HTTP/3.0

隨著5G網絡和互聯網技術的發展,目前過半的互聯網流量已經通過無線傳輸。這種趨勢給整體的網絡瀏覽體驗帶來了挑戰,其中關鍵點在于解決在無線覆蓋率不足的情況下TCP中的隊頭阻塞問題,3.0版本隨之應運而生。

HTTP/3.0又稱為HTTP Over QUIC,是最新一代HTTP協議,棄用TCP協議改為使用基于UDP協議的QUIC協議來實現,QUIC協議的核心思想是將TCP協議在內核實現的諸如可靠傳輸、流量控制、擁塞控制等功能轉移到用戶態來實現,這樣就避開了TCP機制的天然缺陷。HTTP/3.0與HTTP/2.0架構區別如下圖所示:

圖片

但是目前很多網絡設備對于UDP數據包策略不夠友好,進行攔截從而導致成功連接率下降,此外正確安全的配置HTTP/3和QUIC極其復雜,要將其變為一種簡單易用的商業服務路還很長。

Part 03

回顧總結 

HTTP經歷30多年的演化,實現了跨越式的發展,由最初只能串行的傳輸超文本文件到如今可以并行的傳輸多媒體文件,功能、性能以及安全性上都取得了巨大的提升。最后簡短總結一下幾個里程碑版本:

  • HTTP/0.9 確立了交互架構,實現基本請求響應。
  • HTTP/1.0 增加 HTTP 頭,豐富傳輸資源類型,奠定互聯網發展基礎。
  • HTTP/1.1 增加長連接、管道化,提升了 HTTP 傳輸效率。
  • HTTP/2.0 采用二進制傳輸格式,通過 HTTP 多路復用、頭部壓縮、服務器端推送,將傳輸效率在 HTTP + TCP 架構上發揮到了極致。
  • HTTP/3.0 將傳輸層替換為 QUIC,通過改進的擁塞控制、流量控制、0-RTT 建連、傳輸層多路復用、連接遷移等特性,進一步提升了 HTTP 傳輸效率。
責任編輯:龐桂玉 來源: 移動Labs
相關推薦

2023-07-23 18:47:59

Docker開源

2023-04-15 20:25:23

微前端

2023-07-02 16:34:06

GPU虛擬化深度學習

2023-07-02 16:09:57

人工智能人臉識別

2023-09-12 07:10:13

Nacos架構

2023-07-31 08:55:15

AI技術網絡暴力

2024-12-18 14:10:33

2023-07-12 15:50:29

機器學習人工智能

2023-08-29 06:50:01

Javamaven

2023-07-12 16:03:37

Android開發架構

2023-08-06 07:00:59

Openstack網絡

2023-08-15 14:46:03

2023-09-17 17:51:43

Android 14

2023-08-06 06:55:29

數字可視化物聯網

2023-07-12 16:13:01

2023-09-02 20:22:42

自動化測試軟件開發

2023-08-07 06:35:07

系統限流

2023-04-15 20:33:35

圖形數據庫數據庫

2021-06-04 15:38:18

聯邦學習人工智能數據

2021-09-18 11:36:38

混沌工程云原生故障
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美日韩黄色一级片 | 国产精品美女www爽爽爽视频 | 亚洲精品久久久一区二区三区 | 欧美一区免费 | 国产线视频精品免费观看视频 | 91青青草视频 | 成人免费观看男女羞羞视频 | 欧美在线观看一区 | 日韩精品在线一区 | 欧美一区二区三区视频 | 香蕉视频在线播放 | 国产精品久久av | 成人在线免费观看av | 久久久久久国产精品免费 | 成人av网站在线观看 | 一区二区三区成人 | 亚洲一区二区三区视频 | 热re99久久精品国99热观看 | 黄色日批视频 | 91精品国产91久久久久久 | 亚洲精品视频在线看 | 欧美日韩国产精品 | 久久精品国产亚洲一区二区 | 日韩精品1区2区3区 成人黄页在线观看 | 国产精产国品一二三产区视频 | 男人久久天堂 | 久草在线在线精品观看 | 国产电影一区 | 91av在线免费观看 | 一本色道精品久久一区二区三区 | 中文字幕日韩在线 | 国产精品久久久久久妇女 | 二区成人 | 久久乐国产精品 | 国产精品国产a级 | 国产午夜久久 | 亚洲在线久久 | 亚洲精品国产电影 | 天天综合永久 | 成人在线视频一区 | 欧美精品久久久久 |