http協議中的keeplive是做什么的?它的適應場景是什么?


1.Http底層也是通過TCP傳輸的。

2.HTTP keep-alive

Http是一個”請求-響應”協議,它的keep-alive主要是為了讓多個http請求共享一個Tcp連接,以避免每個Http又新建一個TCP連接。每個Http服務器默認的keep-alive時間可能是不一樣的。

3.直接介紹一個場景就可能更容易明白了。客戶端發送了一個Http請求,服務器響應后,判斷這個Http是否是keep-alive模式的,如果不是則關閉連接,如果是keep-alive,則等待keep-alive time后再關閉,如果這期間再收到一個http 請求,則繼續等待最后一個請求的keep-alive time時間,直到keep-alive time時間內沒有收到請求,則關閉。

4.上面是HTTP keep-alive的,而TCP是它下一層的協議,本身TCP是長連接的,除非主動關閉。HTTP的keep-alive time一般是15ms, 30ms之類的,如果是超過了HTTP的keep-alive time時間,則HTTP會關閉TCP連接。本身TCP是不會關閉連接的,TCP的keep alive是TCP的保鮮裝置,在keep alive timeout 后服務端發送一個監測包來判斷連接是否仍保持着,如果還是可連接,則繼續保持,它不會主動關閉連接的。而心跳包是為了防止NAT超時。


免責聲明!

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



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