Http的持久連接和管線化


【要點】

1. 什么是持久連接?

2. 什么是管線化?

 

【總結】

1.什么是持久連接? (keep alive模式)


 HTTP1.1規定了默認保持長連接(HTTP persistent connection ,也有翻譯為持久連接);數據傳輸完成了保持TCP連接不斷開(不發RST包、不四次握手),等待在同域名下繼續用這個通道傳輸數據;相反的就是短連接。

HTTP 1.1版本支持持久連接 1.0版本不支持

與非持久連接的區別:

持久連接使客戶端到服務器端連接持續有效,避免了重新建立連接

大大減少了連接的建立以及關閉時延。HTTP連接是建立在TCP協議之上的,建立一條TCP連接需要三次握手,TCP連接關閉時需要四次揮手。這些都是需要時間的

 

2.什么是管線化

管線化機制須通過永久連接(persistent connection)完成,僅HTTP/1.1支持此技術(HTTP/1.0不支持)

在使用持久連接的情況下,某個連接消息的傳遞類似於

請求1 -> 響應1 -> 請求2 -> 響應2

管線化:某個連接上的消息變成了類似這樣 

請求1 -> 請求2 -> 請求3 -> 響應1 -> 響應2 -> 響應3

【注】

  1. 那么持久連接和管線化的區別在於:

  持久連接的一個缺點是請求和響應式是順序執行的,只有在請求1的響應收到之后,才會發送請求2,而管線化不需要等待上一次請求得到響應就可以進行下一次請求。實現並行發送請求。 

  2. 只有GET和HEAD要求可以進行管線化,而POST則有所限制

  3. 初次創建連接時也不應啟動管線機制,因為對方(服務器)不一定支持HTTP/1.1版本的協議。

       4.HTTP1.1要求服務器端支持管線化,但並不要求服務器端也對響應進行管線化處理,只是要求對於管線化的請求不失敗,而且現在很多服務器端和代理程序對管線化的支持並不好,現代瀏覽器Chrome和Firefox默認並未開啟管線化支持。

 


免責聲明!

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



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