http / 关于长连接和短链接的理解
生活随笔
收集整理的這篇文章主要介紹了
http / 关于长连接和短链接的理解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
HTTP 協議是基于請求 / 響應模式的,因此只要服務端給了響應,本次 HTTP 請求就結束了,也可以理解成 HTTP 是面向請求 / 響應的。
TCP 協議是面上連接的。
綜上,如果 HTTP 請求包是一句話的話,那么 TCP 連接相當于中間的空氣,話通過空氣振動到達目標人耳朵里,目標人回復一句話。整個過程,也就是一次 HTTP 的請求 / 響應就完成了。
至于長連接和短鏈接,那是底層 TCP 處理的事情,如果完成一次 HTTP 請求和響應之后,TCP 也完成了四次揮手,那么這就是短鏈接;如果 TCP 沒有斷開,依然保持一段時間,那么此時就是長連接。
總的來說,HTTP 只是一個 請求 / 響應 模型,跟連接沒有關系,具體的連接指的是底層 TCP 連接處理方式。
HTTP 實現長連接的流程是什么呢?
首先 client 需要告訴 server,要使用的是長連接,方法是在 http 請求頭中加入如下字段:
Connection: Keep-aliveserver 收到該消息之后,會回復如下字段:
Connection: Keep-alive Keep-Alive: timeout=20Keep-Alive: timeout = 20,表示這個 TCP 通道可以保持 20 秒,即:兩次 client 的請求中間時間差大于 20s 時,server 主動斷開該連接。
另外還可能有 max = XXX,表示這個長連接最多接收 XXX 次請求就斷開。
?
(SAW:Game Over!)
?
?
?
?
總結
以上是生活随笔為你收集整理的http / 关于长连接和短链接的理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux 条件变量使用细节(为何调用
- 下一篇: 加密算法有哪些?