導航:首頁 > IDC知識 > http長連接短連接伺服器

http長連接短連接伺服器

發布時間:2021-02-15 08:37:01

1、http怎麼和webserver 建立短連接

 在HTTP/1.0中,默認使用的是短連接。也就是說,瀏覽器和伺服器每進行一次HTTP操作,就建立一次連接,但任務結束就中斷連接。如果客戶端瀏覽器訪問的某個HTML或其他類型的 Web頁中包含有其他的Web資源,如JavaScript文件、圖像文件、CSS文件等;當瀏覽器每遇到這樣一個Web資源,就會建立一個HTTP會話。
但從HTTP/1.1起,默認使用長連接,用以保持連接特性。使用長連接的HTTP協議,會在響應頭有加入這行代碼:

Connection:keep-alive

在使用長連接的情況下,當一個網頁打開完成後,客戶端和伺服器之間用於傳輸HTTP數據的 TCP連接不會關閉,如果客戶端再次訪問這個伺服器上的網頁,會繼續使用這一條已經建立的連接。Keep-Alive不會永久保持連接,它有一個保持時間,可以在不同的伺服器軟體(如Apache)中設定這個時間。實現長連接要客戶端和服務端都支持長連接。
HTTP協議的長連接和短連接,實質上是TCP協議的長連接和短連接。

我們模擬一下TCP短連接的情況,client向server發起連接請求,server接到請求,然後雙方建立連接。client向server 發送消息,server回應client,然後一次讀寫就完成了,這時候雙方任何一個都可以發起close操作,不過一般都是client先發起 close操作。為什麼呢,一般的server不會回復完client後立即關閉連接的,當然不排除有特殊的情況。從上面的描述看,短連接一般只會在 client/server間傳遞一次讀寫操作
短連接的優點是:管理起來比較簡單,存在的連接都是有用的連接,不需要額外的控制手段

2、HttpWebRequest怎麼長連接

HTTP是無狀態的
也就是說,瀏覽器和伺服器每進行一次HTTP操作,就建立一次連接,但任務結束就中斷連接。如果客戶端瀏覽器訪問的某個HTML或其他類型的 Web頁中包含有其他的Web資源,如JavaScript文件、圖像文件、CSS文件等;當瀏覽器每遇到這樣一個Web資源,就會建立一個HTTP會話
HTTP1.1和HTTP1.0相比較而言,最大的區別就是增加了持久連接支持(貌似最新的 http1.0 可以顯示的指定 keep-alive),但還是無狀態的,或者說是不可以信任的。
如果瀏覽器或者伺服器在其頭信息加入了這行代碼
Connection:keep-alive
TCP連接在發送後將仍然保持打開狀態,於是,瀏覽器可以繼續通過相同的連接發送請求。保持連接節省了為每個請求建立新連接所需的時間,還節約了帶寬。
實現長連接要客戶端和服務端都支持長連接。
所謂長連接指建立SOCKET連接後不管是否使用都保持連接,但安全性較差,
所謂短連接指建立SOCKET連接後發送後接收完數據後馬上斷開連接,一般銀行都使用短連接
短連接:比如
http
的,只是連接、請求、關閉,過程時間較短
,
伺服器若是一段時間內沒有收到請求即可關
閉連接。

長連接:有些服務需要長時間連接到伺服器,比如
CMPP
,一般需要自己做在線維持。

最近在看

伺服器推送技術

,在
B/S
結構中,通過某種
magic
使得客戶端不需要通過輪詢即可以得到服務
端的最新信息(比如股票價格)
,這樣可

以節省大量的帶寬。

傳統的輪詢技術對伺服器的壓力很大,
並且造成帶寬的極大浪費。如果改用
ajax
輪詢,可以降低帶寬的負荷
(因為伺服器返回的不是完整頁面)

但是對伺服器

的壓力並不會有明顯的減少。

而推技術(
push
)可以改善這種情況。但因為
HTTP
連接
的特性(短暫,必須由客戶端發起)
,使得推技術的實現比較困難,常見的做法是通過延長
http
連接的壽


來實現
push


接下來自然該討論如何延長
http
連接的壽命

最簡單的自然是死循環法



servlet






public
void
doGet(Request
req,
Response
res)
{
PrintWriter
out
=
res.getWriter();
……








……

3、怎樣建立HTTP長連接,能不能給下客戶端和伺服器端

轉載 這種功能實際上就是數據同步,同時要考慮手機本身、電量、網路流量等等限制因素,所以通常在移動端上有一下兩個解決方案:
1.一種是定時去server查詢數據,通常是使用HTTP協議來訪問web伺服器,稱Polling(輪詢);
2.還有一種是移動端和伺服器建立長連接,使用XMPP長連接,稱Push(推送)。

從耗費的電量、流量和數據延遲性各方面來說,Push有明顯的優勢。但是使用Push的缺點是:
對於客戶端:實現和維護相對成本高,在移動無線網路下維護長連接,相對有一些技術上的開發難度。
對於伺服器:如何實現多核並發,cpu作業調度,數量龐大的長連接並發維護等技術,仍存在開發難點。

在講述Push方案的原理前,我們先了解一下移動無線網路的特點。
移動無線網路的特點:
因為 IP v4 的 IP 量有限,運營商分配給手機終端的 IP 是運營商內網的 IP,手機要連接 Internet,就需要通過運營商的網關做一個網路地址轉換(Network Address Translation,NAT)。簡單的說運營商的網關需要維護一個外網 IP、埠到內網 IP、埠的對應關系,以確保內網的手機可以跟 Internet 的伺服器通訊
GGSN(Gateway GPRS
Support Node 網關GPRS支持結點)模塊就實現了NAT功能。
因為大部分移動無線網路運營商都是為了減少網關的NAT映射表的負荷,所以如果發現鏈路中有一段時間沒有數據通訊時,會刪除其對應表,造成鏈路中斷。(關於NAT的作用及其原理可以查看我的另一篇博文:關於使用UDP(TCP)跨區域網,NAT穿透的心得)

Push在Android平台上長連接的實現:
既然我們知道我們移動端要和Internet進行通信,必須通過運營商的網關,所以,為了不讓NAT映射表失效,我們需要定時向Internet發送數據,因為只是為了不然NAT映射表失效,所以只需發送長度為0的數據即可。

這時候就要用到定時器,在android系統上,定時器通常有一下兩種:
1.java.util.Timer
2.android.app.AlarmManager

分析:
Timer:可以按照計劃或者時間周期來執行相關的任務。但是Timer需要用WakeLock來讓CPU保持喚醒狀態,才能保證任務的執行,這樣子會消耗大量流量;當CPU處於休眠的時候,就不能喚醒執行任務,所以應用於移動端明顯是不合適。

AlarmManager:AlarmManager類是屬於android系統封裝好來管理RTC模塊的管理類。這里就涉及到RTC模塊,要更好地了解兩者的區別,就要明白兩者真正的區別。
RTC(Real- Time Clock)實時鬧鍾在一個嵌入式系統中,通常採用RTC
來提供可靠的系統時間,包括時分秒和年月日等;而且要求在系統處於關機狀態下它也能夠正常工作(通常採用後備電池供電),它的外圍也不需要太多的輔助電路,典型的就是只需要一個高精度的32.768KHz
晶體和電阻電容等。(如果對這方面感興趣,可以自己查閱相關資料,這里就說個大概)
好了,回來正題。所以,AlarmManager又稱全局定時鬧鍾。這意味著,當我用使用AlarmManager來定時執行任務,CPU可以正常地休眠,只有在執行任務是,才喚醒CPU,這個過程是很短時間的。
下面簡單來說明其使用:
1.類似於Timer功能:
//獲得鬧鍾管理器
AlarmManager
am = (AlarmManager)getSystemService(ALARM_SERVICE);
//設置任務執行計劃
am.setRepeating(AlarmManager.ELAPSED_REALTIME, firstTime, 5*1000,
sender);//從firstTime才開始執行,每隔5秒再執行

2.實現全局定時功能:
//獲得鬧鍾管理器
AlarmManager
am = (AlarmManager)getSystemService(ALARM_SERVICE);
//設置任務執行計劃
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime,
5*1000, sender);//從firstTime才開始執行,每隔5秒再執行

總結:在android客戶端使用Push推送時,應該使用AlarmManager來實現心跳功能,使其真正實現長連接。

4、http是長連接還是短鏈接

?

5、長連接還是短連接

從你描述的情況來看他應該屬於一個短連接

6、長連接、短連接是什麼意思?哪位大神給講一下,不要太官方了,通俗易懂點,謝謝。

你好知友!
.
長連接與短連接

所謂長連接,指在一個TCP連接上可以專連續發送屬多個數據包,在TCP連接保持期間,如果沒有數據包發送,需要雙方發檢測包以維持此連接,一般需要自己做在線維持。

短連接是指通信雙方有數據交互時,就建立一個TCP連接,數據發送完成後,則斷開此TCP連接,一般銀行都使用短連接。

比如http的,只是連接、請求、關閉,過程時間較短,伺服器若是一段時間內沒有收到請求即可關閉連接。

其實長連接是相對於通常的短連接而說的,也就是長時間保持客戶端與服務端的連接狀態

如果我的回答對你有幫助.請點擊我的回答下方【選為滿意回答】按鈕.及時採納你將會得到5財富值.

7、什麼是「長連接」和「短連接」?

所謂短連接指建立baiduSOCKET連接後發送後接收完數據後馬上斷開連接,一般銀行都使用短專連接解釋2長連接就是指在屬基於tcp的通訊中,一直保持連接,不管當前是否發送或者接收數據。
而短連接就是只有在有數據傳輸的時候才進行連接,客戶-伺服器通信/傳輸數據完畢就關閉連接。解釋3長連接和短連接這個概念好像只有移動的CMPP協議中提到了,其他的地方沒有看到過。
通信方式
各網元之間共有兩種連接方式:長連接和短連接。所謂長連接,指在一個TCP連接上可以連續發送多個數據包,在TCP連接保持期間,如果沒有數據包發送,需
要雙方發檢測包以維持此連接。短連接是指通信雙方有數據交互時,就建立一個TCP連接,數據發送完成後,則斷開此TCP連接,即每次TCP連接只完成一對
CMPP消息的發送。
現階段,要求ISMG之間必須採用長連接的通信方式,建議SP與ISMG之間採用長連接的通信方式。解釋4短連接:比如http的,只是連接、請求、關閉,過程時間較短,伺服器若是一段時間內沒有收到請求即可關閉連接。

與http長連接短連接伺服器相關的知識