長(zhǎng)連接與短連接 http://www./academy/detail/23350375
長(zhǎng)連接與短連接的操作過(guò)程短連接的操作步驟是: 建立連接——數(shù)據(jù)傳輸——關(guān)閉連接...建立連接——數(shù)據(jù)傳輸——關(guān)閉連接 長(zhǎng)連接的操作步驟是: 建立連接——數(shù)據(jù)傳輸...(保持連接)...數(shù)據(jù)傳輸——關(guān)閉連接 長(zhǎng)連接與短連接的使用時(shí)機(jī)短連接多用于操作頻繁,點(diǎn)對(duì)點(diǎn)的通訊,而且連接數(shù)不能太多的情況。每個(gè)TCP連接的建立都需要三次握手,每個(gè)TCP連接的斷開(kāi)要四次握手。 如果每次操作都要建立連接然后再操作的話處理速度會(huì)降低,所以每次操作后,下次操作時(shí)直接發(fā)送數(shù)據(jù)就可以了,不用再建立TCP連接。例如:數(shù)據(jù)庫(kù)的連接用長(zhǎng)連接,如果用短連接頻繁的通信會(huì)造成socket錯(cuò)誤,頻繁的socket創(chuàng)建也是對(duì)資源的浪費(fèi)。 Web網(wǎng)站的http服務(wù)一般都用短連接,因?yàn)殚L(zhǎng)連接對(duì)于服務(wù)器來(lái)說(shuō)要耗費(fèi)一定的資源。像web網(wǎng)站這么頻繁的成千上萬(wàn)甚至上億客戶端的連接用短連接更省一些資源。試想如果都用長(zhǎng)連接,而且同時(shí)用成千上萬(wàn)的用戶,每個(gè)用戶都占有一個(gè)連接的話,可想而知服務(wù)器的壓力有多大。所以并發(fā)量大,但是每個(gè)用戶又不需頻繁操作的情況下需要短連接。 總之:長(zhǎng)連接和短連接的選擇要根據(jù)需求而定。 長(zhǎng)連接和短連接的產(chǎn)生在于client和server采取的關(guān)閉策略,具體的應(yīng)用場(chǎng)景采用具體的策略,沒(méi)有十全十美的選擇,只有合適的選擇。 HTTP協(xié)議長(zhǎng)連接、短連接總結(jié)長(zhǎng)連接與短連接的不同主要在于client和server采取的關(guān)閉策略不同。短連接在建立連接以后只進(jìn)行一次數(shù)據(jù)傳輸就關(guān)閉連接,而長(zhǎng)連接在建立連接以后會(huì)進(jìn)行多次數(shù)據(jù)數(shù)據(jù)傳輸直至關(guān)閉連接(長(zhǎng)連接中關(guān)閉連接通過(guò)Connection:closed頭部字段)。 二者關(guān)閉策略的不同,就產(chǎn)生了長(zhǎng)連接的優(yōu)點(diǎn):
二者所應(yīng)用的具體場(chǎng)景不同。短連接多用于操作頻繁、點(diǎn)對(duì)點(diǎn)的通訊,且連接數(shù)不能太多的情況。數(shù)據(jù)庫(kù)的連接則采用長(zhǎng)連接。 |
|
|
來(lái)自: changqiong0606 > 《http》