生活随笔
收集整理的這篇文章主要介紹了
http keepalive原理
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1、背景
? ? KeepAlive是就是通常所稱的長連接。KeepAlive帶來的好處是可以減少tcp連接的開銷,這對于短response body的請求效果更加明顯。同時(shí),可以為采用HTTP協(xié)議的交互式應(yīng)用提供良好的session支持。
2、KeepAlive的原理
? ? 在HTTP1.0和HTTP1.1協(xié)議中都有對KeepAlive的支持。其中HTTP1.0需要在request中增加"Connection: keep-alive" header才能夠支持,而HTTP1.1默認(rèn)支持。
2.1 HTTP1.0 KeepAlive支持的數(shù)據(jù)交互流程如下:
? ? a)Client發(fā)出request,其中該request的HTTP版本號為1.0。同時(shí)在request中包含一個(gè)header:"Connection: keep-alive"。
? ? b)Web Server收到request中的HTTP協(xié)議為1.0及"Connection: keep-alive"就認(rèn)為是一個(gè)長連接請求,其將在response的header中也增加"Connection: keep-alive"。同時(shí)不會關(guān)閉已建立的tcp連接。
? ? c)Client收到Web Server的response中包含"Connection: keep-alive",就認(rèn)為是一個(gè)長連接,不close tcp連接。并用該tcp連接再發(fā)送request。(跳轉(zhuǎn)到a))
2.2 HTTP1.1 KeepAlive支持的數(shù)據(jù)交互流程如下:
? ? a)Client發(fā)出request,其中該request的HTTP版本號為1.1。
? ? b)Web Server收到request中的HTTP協(xié)議為1.1就認(rèn)為是一個(gè)長連接請求,其將在response的header中也增加"Connection: keep-alive"。同時(shí)不會關(guān)閉已建立的tcp連接。
? ? c)Client收到Web Server的response中包含"Connection: keep-alive",就認(rèn)為是一個(gè)長連接,不close tcp連接。并用該tcp連接再發(fā)送request。(跳轉(zhuǎn)到a))
總結(jié)
以上是生活随笔為你收集整理的http keepalive原理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。