自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

HTTP也有長(zhǎng)短之分?HTTP的長(zhǎng)連接 vs. 短連接

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
你一定聽(tīng)說(shuō)過(guò)關(guān)于http所謂的 長(zhǎng)連接和短連接之說(shuō)。但是,什么是長(zhǎng)連接?什么是短連接,我想很多人都是懵懵懂懂的,不能完全說(shuō)出他們的區(qū)別。今天就帶你們完全了解他們,從此再也不會(huì)忘記了。

你一定聽(tīng)說(shuō)過(guò)關(guān)于http所謂的 長(zhǎng)連接和短連接之說(shuō)。

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

[[262514]]

什么是長(zhǎng)連接

HTTP長(zhǎng)短連接的區(qū)別在于使用的TCP的長(zhǎng)連接還是短連接。

在HTTP 1.0中默認(rèn)使用的是短連接,而從HTTP 1.1 之后默認(rèn)的連接都變?yōu)殚L(zhǎng)連接。長(zhǎng)短連接的區(qū)別?本質(zhì)上是有TCP連接來(lái)決定的,為什么這么說(shuō)呢?因?yàn)門CP是一個(gè)向雙通道,他可以保持一段時(shí)間不關(guān)閉,這樣就有了長(zhǎng)連接和短連接的區(qū)別了。比方說(shuō):在數(shù)據(jù)的傳輸完成后,保持TCP連接不中斷,等待相同域名再次請(qǐng)求時(shí),繼續(xù)使用這個(gè)TCP連接通道進(jìn)行數(shù)據(jù)傳輸。這個(gè)就是長(zhǎng)連接。

舉個(gè)例子吧,比如你需要郵件一個(gè)東西給你的朋友,HTTP協(xié)議指的就是你需要填寫的那個(gè)快遞單,你寄件的時(shí)候填寫的那個(gè)快遞單的動(dòng)作就相當(dāng)于進(jìn)行了一次HTTP請(qǐng)求。而你的快遞需要通過(guò)交通運(yùn)輸工具來(lái)運(yùn)送吧,可以是貨車、貨車、高鐵、飛機(jī)等等。而TCP協(xié)議指的就是那個(gè)運(yùn)送快遞的運(yùn)輸工具。因?yàn)樾枰\(yùn)輸啊,就需要有道路啊,地上是公路或者鐵路,天上是航線。那么這個(gè)運(yùn)輸?shù)缆肪褪荰CP連接,因?yàn)檫@個(gè)道路是雙向的,可以運(yùn)過(guò)來(lái)也可以運(yùn)過(guò)去。所以,TCP連接也叫作雙向的數(shù)據(jù)通道。

如果這個(gè)道路長(zhǎng)時(shí)間都有車來(lái)運(yùn)送貨物,那就叫作長(zhǎng)連接。如果運(yùn)送一段時(shí)間后,需要休整沒(méi)有車經(jīng)過(guò)了,那么就叫做短連接。

因此我們可以看出來(lái),所謂的HTTP連接指的就是TCP的連接。TCP連接是可以保持一段時(shí)間不中斷的就是長(zhǎng)連接,發(fā)起一次請(qǐng)求后就主動(dòng)斷開(kāi)的就是短連接,所以就有了長(zhǎng)連接和短連接一說(shuō)。

那么問(wèn)題來(lái)了,怎么樣的連接才能被稱之為 ----長(zhǎng)連接呢?

長(zhǎng)連接的條件:

  • ***, 需要將HTTP 的頭部,Connection設(shè)置為 keep-alive,但是這里有一個(gè)問(wèn)題出現(xiàn)了,是不是只需要設(shè)置Connection 為 keep-alive就算是長(zhǎng)連接了呢?這個(gè)問(wèn)題很明顯,當(dāng)然不是的,你需要在服務(wù)器和客戶端都要進(jìn)行設(shè)置。
  • 第二, 我們?nèi)粘I钪兴玫腍TTP請(qǐng)求是不是長(zhǎng)連接呢?答案很明顯,當(dāng)然是的了。因?yàn)楝F(xiàn)在的HTTP使用的都是1.1協(xié)議了,你細(xì)心觀察一下就會(huì)發(fā)現(xiàn),它的Connection 都是設(shè)置為keep-alive.

那么現(xiàn)在你是不是對(duì)keep-alive,很好奇啊。什么是Connection 設(shè)置為keep-alive 呢?接下來(lái),我就帶你們來(lái)揭開(kāi)它神秘的面紗。

Keep-alive 又為何方神圣?

我們知道啊,HTTP協(xié)議采用的都是“請(qǐng)求-應(yīng)答”模式,當(dāng)Connection 為非keep-alive模式,則每一次的 請(qǐng)求-應(yīng)答任務(wù),服務(wù)器和客戶端都需要重新建立一次連接。任務(wù)完成后,斷開(kāi)連接。而當(dāng)Connection為keep-alive模式,會(huì)使服務(wù)器與客戶端一直保持連接的狀態(tài)。當(dāng)再有新的請(qǐng)求任務(wù)發(fā)生時(shí),就不需要重新建立。節(jié)約時(shí)間,也不用耗費(fèi)資源。

非keep-alive:

有上面的圖可以看出來(lái):

短連接的步驟:

HTTP也有長(zhǎng)短之分?HTTP的長(zhǎng)連接vs短連接

長(zhǎng)連接的步驟:

HTTP也有長(zhǎng)短之分?HTTP的長(zhǎng)連接vs短連接

接下來(lái)我們就聊一聊 長(zhǎng)連接和短連接分別在什么場(chǎng)景下使用?

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

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

TCP 連接

在網(wǎng)絡(luò)應(yīng)答請(qǐng)求時(shí),客戶端與服務(wù)器端之間必須建立一個(gè)連接,當(dāng)網(wǎng)絡(luò)請(qǐng)求完成之后,雙方就不再需要這個(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ā)過(guò)來(lái)的ACK包序列號(hào)字段+1.放在包中,發(fā)給服務(wù)器即ACK=Y+1

2. TCP 的“四次分手”:

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

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

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

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

2018-06-06 11:01:25

HTTP長(zhǎng)連接短連接

2020-09-05 17:00:20

HTTP長(zhǎng)連接短連接

2022-12-02 13:49:41

2021-03-24 09:06:01

MySQL長(zhǎng)連接短連接

2011-07-25 16:47:01

HTTP Server PUSH

2021-01-11 05:40:18

HTTPHTTP 協(xié)議網(wǎng)絡(luò)技術(shù)

2021-08-03 09:33:55

HTTP網(wǎng)絡(luò)協(xié)議TCP

2021-08-03 10:10:16

HTTP連接管理

2021-11-17 08:21:31

HTTP連接數(shù)據(jù)

2024-03-19 08:36:19

2019-12-13 09:14:35

HTTP2協(xié)議

2012-10-31 09:27:46

VDI直連存儲(chǔ)共享存儲(chǔ)

2019-07-02 08:24:07

HTTPHTTPSTCP

2019-11-24 19:34:04

HTTP長(zhǎng)連接短連接

2021-01-13 16:04:07

網(wǎng)絡(luò)On-Prem托管

2020-08-13 07:54:10

HTTP協(xié)議nginx

2018-07-24 13:01:52

前端優(yōu)化前端性能瀏覽器

2021-06-16 07:05:02

gRPC 網(wǎng)關(guān)HTTP

2015-03-25 11:47:57

HTTP協(xié)議SessionCookie

2010-04-22 17:34:25

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)