<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] ## 介紹 ### HTTP 超文本傳輸協議(HTTP)是用于傳輸諸如HTML的超媒體文檔的應用層協議。它被設計用于Web瀏覽器和Web服務器之間的通信,但它也可以用于其他目的。 ## 1. HTTP0.9 * 僅支持GET請求方法,并且僅能請求訪問HTML格式的資源。用于網頁內容獲取。 ~~~ get index.html ~~~ ## 2. HTTP1.0 * 支持GET, POST 和 HEAD請求方法 * 請求與回應格式發生更改,除了傳輸數據外,每次通信包含頭信息(header),用于描述一些信息 * 支持設置 `Content-Type` 請求訪問多種數據格式; * 新增狀態碼(status code)、多字符集支持、多部分發送(multi-part type)、權限(authorization)、緩存(cache)、內容編碼(content encoding)等。 > 在1.0版本中,瀏覽器每次請求都需要建立新的TCP連接,服務器完成請求后關閉這次連接。也就是說不支持 keep alive > > 由于TCP連接的新建成本高,所以1.0版本性能較差。 ## 3. HTTP1.1 * 在1.0基礎上,新增OPTIONS, PUT, DELETE, TRACE 和 CONNECT請求方法 * 支持長連接,TCP連接默認不關閉(可在客戶端發送總后一個請求時,發送 `Connection: close`),可以被多個請求復用,即一個TCP連接可允許多個HTTP請求 * 加入管道機制:客戶端可同時發送多個請求,服務器會根據接收的順序,依次回應。(容易出現隊頭堵塞的問題:需要返回的數據過大時,后續請求得等待回應完成) * 增加狀態碼100,客戶端事先只發送一個只帶頭域的請求,服務器接收此請求則返回100,客戶端還需發送帶實體的完整請求。 ## 4. HTTP2.0 > https支持的基礎上,增加的一些內容、復雜度 * 增加雙工模式,即不僅客戶端可同時發送多個請求,服務端也能同時處理多個請求。 * 新的二進制格式:http1.0、1.1的解析是基于文本,2.0引進二進制分幀(在應用層與傳輸層間增加二進制分幀層),將所有數據進行分割,并采用二進制格式編碼。改進傳輸性能,實現低延遲高吞吐量 * 支持多路復用:同一個鏈接可并發處理多個請求 * 壓縮header,從1.0開始添加header每次通信時傳遞,壓縮后header數據體積更小,傳輸更快。 ## 5. HTTP1.1 與 HTTP2.0 測試結果 >[success] 說明: > 測試 http2.0 的前端服務器配置在上面兩個章節已做說明,另外: > 1. 受網絡硬條件限制,測試結果可能有所偏差,但可通過比較其他因素,判斷最終測試結果 > 2. http2.0 測試需要前后端都配置以支持 http2 ,兩者缺一不可 > 3. post 測試請求時上傳數據到服務器并再由服務器返回上傳完成的數據 ### 5.1 HTTP1.1 get 請求測試 HTTP1.1 get 請求三次的結果圖 ![](https://img.kancloud.cn/96/63/966333f74a0f78b03aa4a2a1235bd028_874x286.png) #### 5.1.1 請求耗時分析 HTTP1.1 第一次 get 請求,與 HTTP2.0 相比,在初始化連接時,因不含有 SSL 握手,響應速度略快 ![](https://img.kancloud.cn/9f/cc/9fccd8a2a525f9fa0a68368e0a47c613_864x369.png) 第二次 get 請求耗時相對較少,不再有 DNS Lookp、initial connection,同樣的第三次亦如此 ![](https://img.kancloud.cn/e5/f4/e5f468ed627aa0dc8b7bf4c960907988_857x347.png) ### 5.2 HTTP2.0 get 請求測試 HTTP2.0 get請求三次的結果圖 ![](https://img.kancloud.cn/9a/d6/9ad62fb444cf68de98c1fc7826c44e50_1152x352.png) #### 5.2.1 請求耗時分析 HTTP2.0 第一次 get 請求耗時較久,除網絡因素外,是由于 DNS Lookp(域名解析)、initial connection(初始化連接)、SSL(SSL握手,屬于初始化連接) ![](https://img.kancloud.cn/a2/5b/a25bc6e800912c16360278143e9d14f5_1209x422.png) 第二次 get 請求耗時相對較少,不再有 DNS Lookp、initial connection,同樣的第三次亦如此 ![](https://img.kancloud.cn/68/4c/684c6d3c605e2dc92a37b10ab7a6814d_1205x375.png) ### 5.3 http1.1 多次 post 請求測試 ![](https://img.kancloud.cn/cb/f3/cbf3c9ad52ab19a15f4e89b85469e8b8_1174x555.png) ### 5.4 http2.0 多次 post 請求測試 ![](https://img.kancloud.cn/04/d8/04d88dfb6eeaf2e788e9a71da8ef43ee_1121x513.png) ### 5.5 測試結果表格展示 >[warning] post 請求測試結果截圖說明與get請求基本相似,不再詳細說明。受網絡環境因素影響,所有測試數據僅供參考 | | http1.1 | http2.0 | | --- | --- |--- | | 測試請求次數 | 3次 | 3次 | | get 請求時長 | 17ms 8ms 9ms | 66ms 11ms 10ms | | get 請求數據量 | 34.3kb | 34.3kb | | post 請求時長 | 17ms 2ms 2ms | 62ms 7ms 5ms | | post 請求上傳數據量 | 43.8kb | 43.8kb | ### 5.6 結論: * HTTP2.0 在第一次數據請求時,會因為初始化連接(TCP握手+SSL握手),響應速度會慢于HTTP1.1,但在之后,同一連接再次請求數據時,不再會有初始化連接以及域名解析,HTTP1.1 亦如此,兩者響應速度相差不多,但這與預期所想不一致,預想的是 http2.0 快于 http1.1
                  <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>

                              哎呀哎呀视频在线观看