<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                HTTP 協議在我們的生活中隨處可見,打開手機或者電腦,只要你上網,不論是用 iPhone、Android、Windows 還是 Mac,不論是用瀏覽器還是 App,不論是看新聞、短視頻還是聽音樂、玩游戲,后面總會有 HTTP 在默默為你服務。 據 NetCraft 公司統計,目前全球至少有 16 億個網站、2 億多個獨立域名,而這個龐大網絡世界的底層運轉機制就是 HTTP。 那么,在享受如此便捷舒適的網絡生活時,你有沒有想過,HTTP 協議是怎么來的?它最開始是什么樣子的?又是如何一步一步發展到今天,幾乎“統治”了整個互聯網世界的呢? 常言道:“**時勢造英雄,英雄亦造時勢**”。 今天我就和你來聊一聊 HTTP 的發展歷程,看看它的成長軌跡,看看歷史上有哪些事件推動了它的前進,它又促進了哪些技術的產生,一起來見證“英雄之旅”。 在這個過程中,你也能夠順便了解一下 HTTP 的“歷史局限性”,明白 HTTP 為什么會設計成現在這個樣子。 ## 史前時期 20 世紀 60 年代,美國國防部高等研究計劃署(ARPA)建立了 ARPA 網,它有四個分布在各地的節點,被認為是如今互聯網的“始祖”。 然后在 70 年代,基于對 ARPA 網的實踐和思考,研究人員發明出了著名的 TCP/IP 協議。由于具有良好的分層結構和穩定的性能,TCP/IP 協議迅速戰勝其他競爭對手流行起來,并在 80 年代中期進入了 UNIX 系統內核,促使更多的計算機接入了互聯網。 ## 創世紀 蒂姆·伯納斯 - 李 1989 年,任職于歐洲核子研究中心(CERN)的蒂姆·伯納斯 - 李(Tim Berners-Lee)發表了一篇論文,提出了在互聯網上構建超鏈接文檔系統的構想。這篇論文中他確立了三項關鍵技術。 1. URI:即統一資源標識符,作為互聯網上資源的唯一身份; 2. HTML:即超文本標記語言,描述超文本文檔; 3. HTTP:即超文本傳輸協議,用來傳輸超文本。 這三項技術在如今的我們看來已經是稀松平常,但在當時卻是了不得的大發明。基于它們,就可以把超文本系統完美地運行在互聯網上,讓各地的人們能夠自由地共享信息,蒂姆把這個系統稱為“萬維網”(World Wide Web),也就是我們現在所熟知的 Web。 所以在這一年,我們的英雄“HTTP”誕生了,從此開始了它偉大的征途。 ## HTTP/0.9 20 世紀 90 年代初期的互聯網世界非常簡陋,計算機處理能力低,存儲容量小,網速很慢,還是一片“信息荒漠”。網絡上絕大多數的資源都是純文本,很多通信協議也都使用純文本,所以 HTTP 的設計也不可避免地受到了時代的限制。 這一時期的 HTTP 被定義為 0.9 版,結構比較簡單,為了便于服務器和客戶端處理,它也采用了純文本格式。蒂姆·伯納斯 - 李最初設想的系統里的文檔都是只讀的,所以只允許用“GET”動作從服務器上獲取 HTML 文檔,并且在響應請求之后立即關閉連接,功能非常有限。 HTTP/0.9 雖然很簡單,但它作為一個“原型”,充分驗證了 Web 服務的可行性,而“簡單”也正是它的優點,蘊含了進化和擴展的可能性,因為: “把簡單的系統變復雜”,要比“把復雜的系統變簡單”容易得多。 ## HTTP/1.0 1993 年,NCSA(美國國家超級計算應用中心)開發出了 Mosaic,是第一個可以圖文混排的瀏覽器,隨后又在 1995 年開發出了服務器軟件 Apache,簡化了 HTTP 服務器的搭建工作。 同一時期,計算機多媒體技術也有了新的發展:1992 年發明了 JPEG 圖像格式,1995 年發明了 MP3 音樂格式。 這些新軟件新技術一經推出立刻就吸引了廣大網民的熱情,更的多的人開始使用互聯網,研究 HTTP 并提出改進意見,甚至實驗性地往協議里添加各種特性,從用戶需求的角度促進了 HTTP 的發展。 于是在這些已有實踐的基礎上,經過一系列的草案,HTTP/1.0 版本在 1996 年正式發布。它在多方面增強了 0.9 版,形式上已經和我們現在的 HTTP 差別不大了,例如: 1. 增加了 HEAD、POST 等新方法; 2. 增加了響應狀態碼,標記可能的錯誤原因; 3. 引入了協議版本號概念; 4. 引入了 HTTP Header(頭部)的概念,讓 HTTP 處理請求和響應更加靈活; 5. 傳輸的數據不再僅限于文本。 但 HTTP/1.0 并不是一個“標準”,只是記錄已有實踐和模式的一份參考文檔,不具有實際的約束力,相當于一個“備忘錄”。 所以 HTTP/1.0 的發布對于當時正在蓬勃發展的互聯網來說并沒有太大的實際意義,各方勢力仍然按照自己的意圖繼續在市場上奮力拼殺。 ## HTTP/1.1 1995 年,網景的 Netscape Navigator 和微軟的 Internet Explorer 開始了著名的“瀏覽器大戰”,都希望在互聯網上占據主導地位。 這場戰爭的結果你一定早就知道了,最終微軟的 IE 取得了決定性的勝利,而網景則“敗走麥城”(但后來卻憑借 Mozilla Firefox 又扳回一局)。 “瀏覽器大戰”的是非成敗我們放在一邊暫且不管,不可否認的是,它再一次極大地推動了 Web 的發展,HTTP/1.0 也在這個過程中經受了實踐檢驗。于是在“瀏覽器大戰”結束之后的 1999 年,HTTP/1.1 發布了 RFC 文檔,編號為 2616,正式確立了延續十余年的傳奇。 從版本號我們就可以看到,HTTP/1.1 是對 HTTP/1.0 的小幅度修正。但一個重要的區別是:它是一個“正式的標準”,而不是一份可有可無的“參考文檔”。這意味著今后互聯網上所有的瀏覽器、服務器、網關、代理等等,只要用到 HTTP 協議,就必須嚴格遵守這個標準,相當于是互聯網世界的一個“立法”。 不過,說 HTTP/1.1 是“小幅度修正”也不太確切,它還是有很多實質性進步的。畢竟經過了多年的實戰檢驗,比起 0.9/1.0 少了“學術氣”,更加“接地氣”,同時表述也更加嚴謹。HTTP/1.1 主要的變更點有: 1. 增加了 PUT、DELETE 等新的方法; 2. 增加了緩存管理和控制; 3. 明確了連接管理,允許持久連接; 4. 允許響應數據分塊(chunked),利于傳輸大文件; 5. 強制要求 Host 頭,讓互聯網主機托管成為可能。 HTTP/1.1 的推出可謂是“眾望所歸”,互聯網在它的“保駕護航”下邁開了大步,由此走上了“康莊大道”,開啟了后續的“Web 1.0”“Web 2.0”時代。現在許多的知名網站都是在這個時間點左右創立的,例如 Google、新浪、搜狐、網易、騰訊等。 不過由于 HTTP/1.1 太過龐大和復雜,所以在 2014 年又做了一次修訂,原來的一個大文檔被拆分成了六份較小的文檔,編號為 7230-7235,優化了一些細節,但此外沒有任何實質性的改動。 ## HTTP/2 HTTP/1.1 發布之后,整個互聯網世界呈現出了爆發式的增長,度過了十多年的“快樂時光”,更涌現出了 Facebook、Twitter、淘寶、京東等互聯網新貴。 這期間也出現了一些對 HTTP 不滿的意見,主要就是連接慢,無法跟上迅猛發展的互聯網,但 HTTP/1.1 標準一直“巋然不動”,無奈之下人們只好發明各式各樣的“小花招”來緩解這些問題,比如以前常見的切圖、JS 合并等網頁優化手段。 終于有一天,搜索巨頭 Google 忍不住了,決定“揭竿而起”,就像馬云說的“如果銀行不改變,我們就改變銀行”。那么,它是怎么“造反”的呢? Google 首先開發了自己的瀏覽器 Chrome,然后推出了新的 SPDY 協議,并在 Chrome 里應用于自家的服務器,如同十多年前的網景與微軟一樣,從實際的用戶方來“倒逼”HTTP 協議的變革,這也開啟了第二次的“瀏覽器大戰”。 歷史再次重演,不過這次的勝利者是 Google,Chrome 目前的全球的占有率超過了 60%。“挾用戶以號令天下”,Google 借此順勢把 SPDY 推上了標準的寶座,互聯網標準化組織以 SPDY 為基礎開始制定新版本的 HTTP 協議,最終在 2015 年發布了 HTTP/2,RFC 編號 7540。 HTTP/2 的制定充分考慮了現今互聯網的現狀:寬帶、移動、不安全,在高度兼容 HTTP/1.1 的同時在性能改善方面做了很大努力,主要的特點有: 1. 二進制協議,不再是純文本; 2. 可發起多個請求,廢棄了 1.1 里的管道; 3. 使用專用算法壓縮頭部,減少數據傳輸量; 4. 允許服務器主動向客戶端推送數據; 5. 增強了安全性,“事實上”要求加密通信。 雖然 HTTP/2 到今天已經四歲,也衍生出了 gRPC 等新協議,但由于 HTTP/1.1 實在是太過經典和強勢,目前它的普及率還比較低,大多數網站使用的仍然還是 20 年前的 HTTP/1.1。 ## HTTP/3 看到這里,你可能會問了:“HTTP/2 這么好,是不是就已經完美了呢?” 答案是否定的,這一次還是 Google,而且它要“革自己的命”。 在 HTTP/2 還處于草案之時,Google 又發明了一個新的協議,叫做 QUIC,而且還是相同的“套路”,繼續在 Chrome 和自家服務器里試驗著“玩”,依托它的龐大用戶量和數據量,持續地推動 QUIC 協議成為互聯網上的“既成事實”。 “功夫不負有心人”,當然也是因為 QUIC 確實自身素質過硬。 在去年,也就是 2018 年,互聯網標準化組織 IETF 提議將“HTTP over QUIC”更名為“HTTP/3”并獲得批準,HTTP/3 正式進入了標準化制訂階段,也許兩三年后就會正式發布,到時候我們很可能會跳過 HTTP/2 直接進入 HTTP/3。 ## 小結 今天我和你一起跨越了三十年的歷史長河,回顧了 HTTP 協議的整個發展過程,在這里簡單小結一下今天的內容: 1. HTTP 協議始于三十年前蒂姆·伯納斯 - 李的一篇論文; 2. HTTP/0.9 是個簡單的文本協議,只能獲取文本資源; 3. HTTP/1.0 確立了大部分現在使用的技術,但它不是正式標準; 4. HTTP/1.1 是目前互聯網上使用最廣泛的協議,功能也非常完善; 5. HTTP/2 基于 Google 的 SPDY 協議,注重性能改善,但還未普及; 6. HTTP/3 基于 Google 的 QUIC 協議,是將來的發展方向。 希望通過今天的介紹,你能夠對 HTTP 有一個初步但清晰的印象,知道了“來龍”才能更好地知道“去脈”。 ## 課下作業 1. 你認為推動 HTTP 發展的原動力是什么? 2. 你是怎么理解 HTTP(超文本傳輸協議)的?
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看