<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國際加速解決方案。 廣告
                在互聯網流量傳輸只使用了幾個網絡協議。使用`IPv4`進行路由,使用`TCP`進行連接層面的流量控制,使用`SSL/TLS`協議實現傳輸安全,使用`DNS`進行域名解析,使用`HTTP`進行應用數據的傳輸。 但是使用Http進行應用數據的傳輸,卻是在不斷的改變,那么Http1和Http2和Grpc之間的區別是什么,我們下面分析下. 通常影響一個 HTTP 網絡請求的因素主要有兩個:帶寬和延遲。 * 帶寬 如果說我們還停留在撥號上網的階段,帶寬可能會成為一個比較嚴重影響請求的問題,但是現在網絡基礎建設已經使得帶寬得到極大的提升,我們不再會擔心由帶寬而影響網速,那么就只剩下延遲了。 * 延遲 瀏覽器阻塞(HOL blocking):瀏覽器會因為一些原因阻塞請求。瀏覽器對于同一個域名,同時只能有 4 個連接(這個根據瀏覽器內核不同可能會有所差異),超過瀏覽器最大連接數限制,后續請求就會被阻塞。 DNS 查詢(DNS Lookup):瀏覽器需要知道目標服務器的 IP 才能建立連接。將域名解析為 IP 的這個系統就是 DNS。這個通常可以利用DNS緩存結果來達到減少這個時間的目的。 建立連接(Initial connection):HTTP 是基于 TCP 協議的,瀏覽器最快也要在第三次握手時才能捎帶 HTTP 請求報文,達到真正的建立連接,但是這些連接無法復用會導致每次請求都經歷三次握手和慢啟動。三次握手在高延遲的場景下影響較明顯,慢啟動則對文件類大請求影響較大。 然而,HTTP2并不是對HTTP1協議的重寫,相對于HTTP1,HTTP2 的側重點主要在性能。其中請求方法,狀態碼和語義和HTTP1都是相同的,可以使用與 HTTP1相同的 API(可能有一些小的添加)來表示協議。 HTTP2主要有兩個規范組成: * `Hypertext Transfer Protocol version 2`(超文本傳輸協議版本 2) * `HPACK - HTTP2`的頭壓縮 (HPACK 是一種頭部壓縮算法) HTTP2和HTTP1相比的新特性包括: * 新的二進制格式(Binary Format) HTTP1.x的解析是基于文本。基于文本協議的格式解析存在天然缺陷,文本的表現形式有多樣性,要做到健壯性考慮的場景必然很多,二進制則不同,只認0和1的組合。基于這種考慮HTTP2.0的協議解析決定采用二進制格式,實現方便且健壯。 * 多路復用(MultiPlexing) 連接共享,即每一個request都是是用作連接共享機制的。一個request對應一個id,這樣一個連接上可以有多個request,每個連接的request可以隨機的混雜在一起,接收方可以根據request的 id將request再歸屬到各自不同的服務端請求里面。 * Header壓縮 Header壓縮,如上文中所言,對前面提到過HTTP1.x的header帶有大量信息,而且每次都要重復發送,HTTP2.0使用encoder來減少需要傳輸的header大小,通訊雙方各自cache一份header fields表,既避免了重復header的傳輸,又減小了需要傳輸的大小。 * 服務端推送(server push) 服務端推送(server push),同SPDY一樣,HTTP2.0也具有server push功能。 Grpc的設計目標是在任何環境下運行,支持可插拔的負載均衡,跟蹤,運行狀況檢查和身份驗證。它不僅支持數據中心內部和跨數據中心的服務調用,它也適用于分布式計算的最后一公里,將設備,移動應用程序和瀏覽器連接到后端服務,同時,它也是高性能的,而 HTTP2 恰好支持這些。 而Grpc是基于http2的. * HTTP2天然的通用性滿足各種設備,場景. * HTTP2的性能相對來說也是很好的,除非你需要極致的性能. * HTTP2的安全性非常好,天然支持 SSL. * HTTP2的鑒權也非常成熟. * Grpc基于 HTTP2 多語言實現也更容易.
                  <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>

                              哎呀哎呀视频在线观看