HTTP的長連接和短連接直接的區(qū)別

2021-02-26    分類: 網(wǎng)站建設(shè)

你一定聽說過關(guān)于http所謂的 長連接和短連接之說。

但是,什么是長連接?什么是短連接,我想很多人都是懵懵懂懂的,不能完全說出他們的區(qū)別。今天就帶你們完全了解他們,從此再也不會忘記了。

接下來我們就聊一聊 長連接和短連接分別在什么場景下使用?

  • 長連接使用場景:長連接多用于頻繁操作,多次請求的網(wǎng)絡(luò)應(yīng)答響應(yīng),而且是一對一,點(diǎn)對點(diǎn)的通信。 例如:數(shù)據(jù)庫的連接用長連接,如果使用短連接頻繁的應(yīng)答響應(yīng)會造成socket報(bào)錯,同時也會浪費(fèi)資源。
  • 短連接的使用場景:短連接怎不會那么耗費(fèi)資源,因?yàn)椴恍枰L時間占用TCP連接。因此,像Web網(wǎng)站中的http服務(wù)一般都是用的短連接。因?yàn)殚L連接會占用一定的資源,而像淘寶,京東等網(wǎng)站這樣頻繁的被用戶訪問,趕上雙十一都是上億規(guī)模的訪問量,如果使用長連接,每個用戶都占用一個TCP連接通道,那么服務(wù)器的壓力可想而知。所以,這種情況下 使用短連接效果比較好。

因?yàn)樯厦嫖覀冋f到HTTP的連接實(shí)際上就是TCP的連接,那么在這里我們就不得不來詳細(xì)說一下,TCP的連接有什么特色呢?

TCP 連接

在網(wǎng)絡(luò)應(yīng)答請求時,客戶端與服務(wù)器端之間必須建立一個連接,當(dāng)網(wǎng)絡(luò)請求完成之后,雙方就不再需要這個連接時就可以將連接釋放。 而這里采用的是TCP連接,TCP的協(xié)議里面的連接,依靠是“三次握手”,釋放時依靠“四次分手”。

因此每一次的連接都是需要耗費(fèi)資源和時間的。

1. TCP 的“三次握手”:

TCP 的“三次握手”

TCP 的三次握手的示意圖

詳細(xì)解釋:

  • 第一次握手:客戶端想服務(wù)器發(fā)送一個SYN 標(biāo)志位為1的包,以及初始序號X,包裝在包的頭的序列號字段里。
  • 第二次握手:服務(wù)器發(fā)回ACK(確認(rèn)包),即將SYN和ACK標(biāo)志位都命名為1,同時將序列號修改為X+1.
  • 第三次握手:客戶端向服務(wù)器再次發(fā)送確認(rèn)包(ACK),SYN標(biāo)志位為0.ACK標(biāo)志位為1.同時把服務(wù)器發(fā)過來的ACK包序列號字段+1.放在包中,發(fā)給服務(wù)器即ACK=Y+1

2. TCP 的“四次分手”:

因?yàn)門CP的斷開需要發(fā)送四個包,因此被稱之為 四次揮手。客戶端或服務(wù)器端均可主動斷開。在socket 編程中,任何一方執(zhí)行close()操作即可產(chǎn)生分手操作。

HTTP 協(xié)議的長連接和短連接,實(shí)質(zhì)上就是TCP協(xié)議的長連接和短連接。

短連接和長連接的工作原理是啥,有啥優(yōu)勢呢?

  • 短連接:client向server發(fā)送請求,server收到請求,雙方建立連接。Client向server發(fā)送消息,server響應(yīng)client.然后一次連接就完成了。此時,雙方都可以發(fā)起close操作。
  • 短連接的優(yōu)點(diǎn):管理簡單,發(fā)起的連接都是有效的連接。不需要額外的控制手段。
  • 長連接:client向server發(fā)送請求,server響應(yīng)client的連接,雙方建立連接。然后完成一次成功的響應(yīng)請求,之后他們的連接不會主動關(guān)閉,后面的讀寫響應(yīng)請求還會繼續(xù)使用這個連接通道。

網(wǎng)頁標(biāo)題:HTTP的長連接和短連接直接的區(qū)別
文章分享:http://muchs.cn/news40/102990.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、微信小程序、網(wǎng)站維護(hù)品牌網(wǎng)站制作、面包屑導(dǎo)航、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)