http協議的隊首阻塞


1 隊首阻塞

就是需要排隊,隊首的事情沒有處理完的時候,后面的人都要等着。

2 http1.0的隊首阻塞

對於同一個tcp連接,所有的http1.0請求放入隊列中,只有前一個請求的響應收到了,然后才能發送下一個請求。

可見,http1.0的隊首組塞發生在客戶端。

3 http1.1的隊首阻塞

對於同一個tcp連接,http1.1允許一次發送多個http1.1請求,也就是說,不必等前一個響應收到,就可以發送下一個請求,這樣就解決了http1.0的客戶端的隊首阻塞。但是,http1.1規定,服務器端的響應的發送要根據請求被接收的順序排隊,也就是說,先接收到的請求的響應也要先發送。這樣造成的問題是,如果最先收到的請求的處理時間長的話,響應生成也慢,就會阻塞已經生成了的響應的發送。也會造成隊首阻塞。

可見,http1.1的隊首阻塞發生在服務器端。

4 http2是怎樣解決隊首阻塞的

http2無論在客戶端還是在服務器端都不需要排隊,在同一個tcp連接上,有多個stream,由各個stream發送和接收http請求,各個steam相互獨立,互不阻塞。

只要tcp沒有人在用那么就可以發送已經生成的requst或者reponse的數據,在兩端都不用等,從而徹底解決了http協議層面的隊首阻塞問題。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM