HTTP 協議在咱們身邊隨處可見,只要上網就離不開它。不管是用瀏覽器仍是 App,不管是看新聞、短視頻仍是聽音樂、玩遊戲,後面總會有 HTTP 在默默爲你服務。算法
Http 協議是怎麼來的?最開始是什麼樣子?又是如何一步步發展到今天,幾乎統治了整個互聯網世界瀏覽器
一塊兒走向 HTTP
的世界,看歷史長河中他是如何應運而生,如何適應當今的互聯網,它又有什麼侷限性。緩存
20 世紀 60 年代,美國國防部高等研究計劃署(ARPA)創建了 ARPA 網,它有四個分佈在各地的節點,被認爲是現在互聯網的 「始祖」。安全
在 70 年代,基於對 ARPA
網的實踐和思考,研究人員發明出了著名的 TCP/IP
協議。因爲具備良好的分層結構和穩定的性能,TCP/IP
協議迅速打敗其餘競爭對手流行起來,並在 80 年代中期進入了 UNIX
系統內核,促使更多的計算機接入了互聯網。服務器
1989 年,任職於歐洲核子研究中心(CERN)的蒂姆·伯納斯 - 李(Tim Berners-Lee)發表了一篇論文,提出了在互聯網上構建超連接文檔系統的構想。這篇論文中他確立了三項關鍵技術。ide
URI
: 統一資源標識符,做爲互聯網資源的惟有身份。HTML
: 超文本標記語言,描述超文本文檔。HTTP
:超文本傳輸協議,傳輸超文本數據。基於它們,就能夠把超文本系統完美地運行在互聯網上,讓各地的人們可以自由地共享信息,蒂姆把這個系統稱爲「萬維網」(World Wide Web),也就是咱們如今所熟知的 Web。性能
因此在這一年,咱們的英雄「HTTP」誕生了,今後開始了它偉大的征途。優化
20 世紀 90 年代初期的互聯網世界很是簡陋,計算機處理能力低,存儲容量小,網速很慢,仍是一片「信息荒漠」。網站
這一時期的 HTTP
被定義爲 0.9 版,結構簡單,便於服務器與客戶端處理,它也採用了純文本格式。蒂姆·伯納斯 - 李最初設想的系統裏的文檔都是隻讀的,因此只容許用「GET」動做從服務器上獲取 HTML 文檔,而且在響應請求以後當即關閉鏈接,功能很是有限。加密
1993 年,NCSA
(美國國家超級計算應用中心)開發出了 Mosaic
,是第一個能夠圖文混排的瀏覽器,隨後又在 1995
年開發出了服務器軟件 Apache,簡化了 HTTP
服務器的搭建工做。
同期,計算機多媒體技術也有了新的進展:1992 年發明了 JPEG
圖像格式,1995 年發明了 MP3
音樂格式。
HTTP/1.0 版本在 1996 年正式發佈。它在多方面加強了 0.9 版,形式上已經和咱們如今的 HTTP 差異不大了。
HEAD
POST
等方法。HTTP Header
(頭部)的概念。但 HTTP/1.0 並非一個「標準」,只是記錄已有實踐和模式的一份參考文檔,不具備實際的約束力,至關於一個「備忘錄」。
1995 年,網景的 Netscape Navigator 和微軟的 Internet Explorer 開始了著名的「瀏覽器大戰」,都但願在互聯網上佔據主導地位。
最終微軟的 IE 取得了決定性的勝利,而網景則「敗走麥城」。
瀏覽器大戰」的是非成敗咱們放在一邊暫且無論,不能否認的是,它再一次極大地推進了 Web 的發展,HTTP/1.0 也在這個過程當中經受了實踐檢驗。因而在「瀏覽器大戰」結束以後的 1999 年,HTTP/1.1
發佈了 RFC 文檔,編號爲 2616,正式確立了延續十餘年的傳奇。
HTTP/1.1 是對 HTTP/1.0 的小幅度修正。但一個重要的區別是:它是一個「正式的標準」,而不是一份無關緊要的「參考文檔」。這意味着從此互聯網上全部的瀏覽器、服務器、網關、代理等等,只要用到 HTTP 協議,就必須嚴格遵照這個標準,至關因而互聯網世界的一個「立法」。
實際上並非 「小幅修正」 這麼簡單,有不少實質上的進步,比起 0.9/1.0 少了「學術氣」,更加「接地氣」,同時表述也更加嚴謹。HTTP/1.1 主要的變動點有:
PUT
DELETE
等方法。Host
頭,王互聯網主機託管稱爲可能。chunked
) ,利於傳輸大文件。HTTP/1.1 的推出可謂是「衆望所歸」,開啓了後續的 「Web 1.0」 「Web 2.0」 時代。如今許多的知名網站都是在這個時間點左右創立的,例如 Google、新浪、搜狐、網易、騰訊等。
通過 HTTP /1.1,整個互聯網出現了爆炸式增加,這期間也出現了對 HTTp
不滿的意見,主要集中在鏈接慢,更不上迅猛發展的互聯網,但 HTTP/1.1 標準一直「巋然不動」,無奈之下人們只好發明各式各樣的「小花招」來緩解這些問題,好比之前常見的切圖、JS 合併等網頁優化手段。
終於有一天,搜索巨頭 Google 忍不住了,決定「揭竿而起」,就像馬雲說的「若是銀行不改變,咱們就改變銀行」。那麼,它是怎麼「造反」的呢?
Google 首先開發了本身的瀏覽器 Chrome,而後推出了新的 SPDY 協議,並在 Chrome 裏應用於自家的服務器,如同十多年前的網景與微軟同樣,從實際的用戶方來「倒逼」HTTP 協議的變革,這也開啓了第二次的「瀏覽器大戰」。
歷史再次重演,不過此次的勝利者是 Google,Chrome 目前的全球的佔有率超過了 60%。「挾用戶以號令天下」,Google 藉此順勢把 SPDY 推上了標準的寶座,互聯網標準化組織以 SPDY 爲基礎開始制定新版本的 HTTP 協議,最終在 2015 年發佈了 HTTP/2,RFC 編號 7540。
此次協議的制定充分考慮了現在互聯網的現狀:寬帶、移動、不安全在高度兼容 HTTP/1.1 的同時在性能改善方面作了很大努力,主要的特色有:
HTTP/1.1
的管道。雖然 HTTP/2
到今天已經四歲,也衍生出了 gRPC
等新協議,但因爲 HTTP/1.1
實在是太過經典和強勢,目前它的普及率還比較低,大多數網站使用的仍然仍是 20 年前的 HTTP/1.1
。
這時候谷歌開始 革本身的命
。在 HTTP/2
還處於草案之時,Google 又發明了一個新的協議,叫作 QUIC
,並且仍是相同的「套路」,繼續在 Chrome
和自家服務器裏試驗着 「玩」,依託它的龐大用戶量和數據量,持續地推進 QUIC
協議成爲互聯網上的「既成事實」。
在去年,也就是 2018 年,互聯網標準化組織 IETF
提議將「HTTP over QUIC」改名爲「HTTP/3」並得到批准,HTTP/3
正式進入了標準化制訂階段,也許兩三年後就會正式發佈,到時候咱們極可能會跳過 HTTP/2
直接進入 HTTP/3
。
老鐵們期待麼?
開篇回顧了 HTTP 協議的整個發展過程,總結下主要以下幾點:
歡迎讀者後臺回覆 「HTTP發展」 獲取個人回答參考,也歡迎加羣跟咱們一塊兒討論,發表你的看法。