<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國際加速解決方案。 廣告
                HTTP/2 相比于 HTTP/1,可以說是大幅度提高了網頁的性能。 在 HTTP/1 中,為了性能考慮,我們會引入雪碧圖、將小圖內聯、使用多個域名等等的方式。這一切都是因為瀏覽器限制了同一個域名下的請求數量(Chrome 下一般是限制六個連接),當頁面中需要請求很多資源的時候,隊頭阻塞(Head of line blocking)會導致在達到最大請求數量時,剩余的資源需要等待其他資源請求完成后才能發起請求。 在 HTTP/2 中引入了多路復用的技術,這個技術可以只通過一個 TCP 連接就可以傳輸所有的請求數據。多路復用很好的解決了瀏覽器限制同一個域名下的請求數量的問題,同時也接更容易實現全速傳輸,畢竟新開一個 TCP 連接都需要慢慢提升傳輸速度。 大家可以通過 [該鏈接](https://link.juejin.im/?target=https%3A%2F%2Fhttp2.akamai.com%2Fdemo) 感受下 HTTP/2 比 HTTP/1 到底快了多少。 ![](https://box.kancloud.cn/af375a2f253c175348d6442e64a6397d_929x512.png) 在 HTTP/1 中,因為隊頭阻塞的原因,你會發現發送請求是長這樣的 ![](https://box.kancloud.cn/cb8a863ad1746b460907ff60ad832af2_518x642.png) 在 HTTP/2 中,因為可以復用同一個 TCP 連接,你會發現發送請求是長這樣的 ![](https://box.kancloud.cn/198d140ee60c146d926418f66c8eadc4_900x616.png) ## 二進制傳輸 HTTP/2 中所有加強性能的核心點在于此。在之前的 HTTP 版本中,我們是通過文本的方式傳輸數據。在 HTTP/2 中引入了新的編碼機制,所有傳輸的數據都會被分割,并采用二進制格式編碼。 ![](https://box.kancloud.cn/f0e80baceb50756b8b6b86f08c759274_874x459.png) ## 多路復用 在 HTTP/2 中,有兩個非常重要的概念,分別是幀(frame)和流(stream)。 幀代表著最小的數據單位,每個幀會標識出該幀屬于哪個流,流也就是多個幀組成的數據流。 多路復用,就是在一個 TCP 連接中可以存在多條流。換句話說,也就是可以發送多個請求,對端可以通過幀中的標識知道屬于哪個請求。通過這個技術,可以避免 HTTP 舊版本中的隊頭阻塞問題,極大的提高傳輸性能。 ![](https://box.kancloud.cn/dc4e5e7fe9d8b32281eed974f3fa1869_494x138.png) ## Header 壓縮 在 HTTP/1 中,我們使用文本的形式傳輸 header,在 header 攜帶 cookie 的情況下,可能每次都需要重復傳輸幾百到幾千的字節。 在 HTTP /2 中,使用了 HPACK 壓縮格式對傳輸的 header 進行編碼,減少了 header 的大小。并在兩端維護了索引表,用于記錄出現過的 header ,后面在傳輸過程中就可以傳輸已經記錄過的 header 的鍵名,對端收到數據后就可以通過鍵名找到對應的值。 ## 服務端 Push 在 HTTP/2 中,服務端可以在客戶端某個請求后,主動推送其他資源。 可以想象以下情況,某些資源客戶端是一定會請求的,這時就可以采取服務端 push 的技術,提前給客戶端推送必要的資源,這樣就可以相對減少一點延遲時間。當然在瀏覽器兼容的情況下你也可以使用 prefetch 。
                  <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>

                              哎呀哎呀视频在线观看