在網上看了幾篇文章,都說HTTP協議的TCP/IP通信可以實作瀏覽器跟服務器的長連接,即雙方建立連接后不進行四次揮手,連接狀態在超時之前一直保持。
但是,HTTP協議不是無狀態的嗎(服務器發送完回響后立即斷開)?
uj5u.com熱心網友回復:
你看的文章里就沒有一篇提到具體原因?uj5u.com熱心網友回復:
搜一下HTTP長連接、HTTP無狀態有很多文章的。
大體意思是,HTTP1.1版本在瀏覽器跟服務器建立連接時,最后不進行四次揮手(斷開連接)動作,就可以進行長連接雙工通信。
但是,HTTP無狀態又是說,服務器對每次瀏覽器的請求不具有記憶功能,即每次資料回響完成連接立即斷開。
這讓我很惆悵啊~~~
uj5u.com熱心網友回復:
個人理解,連接的時候創建了一個TCP的連接,然后在tcp開channel,http是泡在channel里面的,所謂的不斷開連接是在keep-alive=true的時候,http請求后斷開channel,都是socket是不斷開的。也就是每次請求的channelSession都是一個新的sessio,而在socket連接超時之前socket物件是同一個,這樣的話不用重復創建socket物件,不用進行socket的connect操作,加快了回應的速度。而在keep-alive=false的時候每次請求完都把socket給斷開了,下一次請求又重新發起了一個socket連接,回應速度較慢。胡亂扯的,請樓下指正↓↓↓
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/131336.html
標籤:網絡協議與配置
