HTTP非持續連線和持續連線
非持續連線和持續連線
非持續連線(non-persistent connection):每個請求/相應是經過單獨的TCP連線傳送,每個TCP連線在伺服器傳送一個物件後關閉,該連線並不為其他的物件而持續下來。換句話說,即每個TCP只傳輸一個請求和一個響應。
使用者在非持續連線下, 每點選一個超連結,都會執行如下步驟:
1.瀏覽器和Web伺服器發起一個TCP連線,其中涉及到三次握手過程,即客戶向伺服器傳送一個小TCP報文段,伺服器用一個小TCP報文段做出確認和響應,最後客戶向伺服器返回確認。在三次握手過程中,前兩次佔用一個RTT。
2.在第三次握手時,客戶可向該TCP連線傳送一個HTTP請求報文,當伺服器收到請求報文後,在該TCP連線上傳送HTML檔案。這個過程佔用一個RTT。
綜合上述兩個步驟,總的響應時間是兩個RTT加上伺服器傳輸HTML檔案的時間。
往返時間(Round-Trip Time, RTT):一個短分組從客戶到伺服器然後再返回客戶所花費的時間。包括分組傳播時延、分組在中間路由器和交換機上的排隊時延、分組處理時延
非持續連線的缺點:
- 必須為每一個請求物件建立和維護一個全新的連線。每個TCP連線都要在客戶和伺服器分配TCP緩衝區和保持TCP變數,加大對Web伺服器的負擔
- 每一個物件經受兩倍RTT的交付時延,一個RTT用於建立TCP連線,另一個RTT用於請求和接收一個物件
持續連線(persistent connection):所有的請求/響應經過相同的TCP連線傳送。伺服器在傳送響應後保持該TCP連線開啟,後續的請求和響應能夠通過相同的TCP連線進行傳送。
如果一條連線經過一定時間間隔仍未被使用,HTTP伺服器就關閉該連線。
相關文章
- 使用流水線外掛實現持續整合、持續部署
- 對持續整合、 持續交付、持續部署和持續釋出的介紹
- 持續整合、持續部署、持續交付、持續釋出
- docker版jenkins持續整合部署及連線gitee碼雲DockerJenkinsGitee
- 持續整合、持續交付、持續部署簡介
- 持續整合持續部署持續交付_持續整合與持續部署之間的真正區別
- Socket連線和Http連線HTTP
- 利用 Screen 保持 VSCode 連線遠端任務持續執行VSCode
- swoole 之建立一個 MySQL 連線池 學習分享記錄 [持續更新]MySql
- 淺談持續整合(CI)、持續交付(CD)、持續部署(CD)
- http的長連線和短連線HTTP
- 談談持續整合,持續交付,持續部署之間的區別
- Ansible 持續整合Anolis、Ubuntu基線配置Ubuntu
- 持續整合、持續交付和持續部署有什麼區別?0基礎學習linux技能Linux
- HTTP長連線和短連線原理淺析HTTP
- 從持續整合到持續交付——DockerCloud概覽DockerCloud
- 如何不中斷連線保持linux伺服器持續執行 —— screen 使用介紹Linux伺服器
- 通過Docker容器執行持續整合/持續部署Docker
- PHP學習路線資源總結[持續更新]PHP
- JVM(持續更新。。。)JVM
- FastApi持續更新ASTAPI
- iOS 持續整合iOS
- 持續學習
- Tomcat下連線池的配置(續)Tomcat
- Http持久連線與HttpClient連線池HTTPclient
- Jenkins持續部署-Windows環境持續部署探究1JenkinsWindows
- 我們正在路上—從持續整合到持續釋出
- HTTP 持久連線HTTP
- HTTP長連線HTTP
- HTTP連線池HTTP
- Http和Socket連線區別HTTP
- SAP開源的持續整合-持續交付的解決方案
- 一文讀透HTTP的長連線和短連線HTTP
- 連線和半連線
- 持續記函式函式
- 整合持續整合工具
- 聊聊持續測試
- lambda(持續補充)