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

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

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

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

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

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

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

TCP 連接

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

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

1. TCP 的“三次握手”:

TCP 的“三次握手”

TCP 的三次握手的示意圖

詳細(xì)解釋:

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

2. TCP 的“四次分手”:

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

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

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

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

文章題目:HTTP的長連接和短連接直接的區(qū)別
文章起源:http://www.muchs.cn/news/102990.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、營銷型網(wǎng)站建設(shè)企業(yè)網(wǎng)站制作、網(wǎng)站設(shè)計(jì)公司企業(yè)建站、網(wǎng)站導(dǎo)航

廣告

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

網(wǎng)站托管運(yùn)營