短連接的概念
短連接是指通訊雙方有數據交互時,就建立一個連接,數據發送完成后,則斷開此連接,即每次連接只完成一項業務的發送。
優點:不需要長期占用通道,對于業務頻率不高的場合,能節省通道的使用。
缺點:需要在每次發送業務時,都要建立一次連接,連接建立的過程開銷大。
什么是“長連接”和“短連接”?
網絡連接中的長連接和短鏈接是什么意思?
短連接
連接->傳輸數據->關閉連接
比如HTTP是無狀態的的短鏈接,瀏覽器和服務器每進行一次HTTP操作,就建立一次連接,但任務結束就中斷連接。
具體就是:瀏覽器client發起并建立TCP連接 -> client發送HttpRequest報文 -> rver接收到報文->rver handle并發送HttpRespon報文給前端,發送完畢之后立即調用socket.clo方法
->client接收respon報文->client最終會收到rver端斷開TCP連接的信號->client 端斷開TCP連接,具體就是調用clo方法。
也可以這樣說:短連接是指SOCKET連接后,發送接收完數據后馬上斷開連接。
因為連接后接收了數據就斷開了,所以每次數據接受處理不會有聯系。 這也是HTTP協議無狀態的原因之一。
長連接
連接->傳輸數據->保持連接 -> 傳輸數據-> ...........->直到一方關閉連接,多是客戶端關閉連接。
長連接指建立SOCKET連接后不管是否使用都保持連接,但安全性較差。
HTTP在短鏈接和長連接上的選擇:
HTTP是無狀態的 ,也就是說,瀏覽器和服務器每進行一次HTTP操作,就建立一次連接,但任務結束就中斷連接。
如果客戶端瀏覽器訪問的某個HTML或其他類型的 Web頁中包含有其他的Web資源,如JavaScript文件、圖像文件、CSS文件等;當瀏覽器每遇到這樣一個Web資源,就會建立一個HTTP會話
HTTP1.1和HTTP1.0相比較而言,最大的區別就是增加了持久連接支持(貌似最新的HTTP1.1 可以顯示的指定 keep-alive),但還是無狀態的,或者說是不可以信任的。
如果瀏覽器或者服務器在其頭信息加入了這行代碼 Connection:keep-alive
TCP連接在發送后將仍然保持打開狀態,于是,瀏覽器可以繼續通過相同的連接發送請求。保持連接節省了為每個請求建立新連接所需的時間,還節約了帶寬。
實現長連接要客戶端和服務端都支持長連接。
什么時候用長連接,短連接?
長連接多用于操作頻繁,點對點的通訊,而且連接數不能太多情況。
每個TCP連接都需要三步握手,這需要時間,如果每個操作都是先連接,再操作的話那么處理速度會降低很多,所以每個操作完后都不斷開,次處理時直接發送數據包就OK了,不用建立TCP連接。
例如:數據庫的連接用長連接, 如果用短連接頻繁的通信會造成socket錯誤,而且頻繁的socket 創建也是對資源的浪費。
像WEB網站的http服務一般都用短鏈接,因為長連接對于服務端來說會耗費一定的資源,而像WEB網站這么頻繁的成千上萬甚至上億客戶端的連接用短連接會更省一些資源,如果用長連接,而且同時有成千上萬的用戶,如果每個用戶都占用一個連接的話,那可想而知吧。所以并發量大,但每個用戶無需頻繁操作情況下需用短連好。
總之,長連接和短連接的選擇要視情況而定。
什么是短連接,長連接,Socket
什么是長連接,什么是短連接?長連接和短連接的區別是什么?
長連接、短連接是什么意思?哪位大神給講一下,不要太官方了,通俗易懂點,謝謝。
本文發布于:2023-02-28 18:46:00,感謝您對本站的認可!
本文鏈接:http://www.newhan.cn/zhishi/a/167758284745240.html
版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。
本文word下載地址:短連接(短鏈接生成).doc
本文 PDF 下載地址:短連接(短鏈接生成).pdf
| 留言與評論(共有 0 條評論) |