長連線 短連線

2021-09-25 18:09:49 字數 1152 閱讀 5238

http協議的長連線和短連線,實質上是tcp協議的長連線和短連線。

http屬於應用層協議,在傳輸層使用tcp協議,在網路層使用ip協議。ip協議主要解決網路路由和定址問題,tcp協議主要解決如何在ip層之上可靠的傳遞資料報。

http是乙個無狀態的面向連線的協議,無狀態不代表http不能保持tcp連線,也不能代表http使用的是udp協議(無連線)。無狀態,指的是協議對於事務處理沒有記憶能力,伺服器不知道客戶端是什麼狀態。開啟乙個伺服器上的網頁和你之前開啟這個伺服器上的網頁之間沒有任何聯絡。

在http/1.0中,預設使用的是短連線。瀏覽器和伺服器每進行一次http操作,就建立一次連線,任務結束就中斷連線。如果客戶端瀏覽器訪問的某個html或其他型別的 web頁中包含有其他的web資源,如影象檔案、css檔案等,當瀏覽器每遇到這樣乙個web資源,就會建立乙個http會話。

從 http/1.1起,預設使用長連線,用以保持連線特性。

使用長連線的http協議,在響應頭有加入這行**:connection:keep-alive

在使用長連線的情況下,當乙個網頁開啟完成後,客戶端和伺服器之間用於傳輸http資料的 tcp連線不會關閉,如果客戶端再次訪問這個伺服器上的網頁,會繼續使用這一條已經建立的連線。keep-alive不會永久保持連線,它有乙個保持時間,可以在不同的伺服器軟體(如apache)中設定這個時間。實現長連線要客戶端和服務端都支援長連線。

短連線的操作步驟是:

建立連線——資料傳輸——關閉連線…建立連線——資料傳輸——關閉連線

建立連線——資料傳輸…(保持連線)…資料傳輸——關閉連線

長連線:長連線多用於操作頻繁,點對點的通訊,而且連線數不能太多情況。每個tcp連線都需要三步握手,這需要時間,如果每個操作都是先連線,再操作的話那麼處理速度會降低很多,所以每個操作完後都不斷開,處理時直接傳送資料報就好,不用建立 tcp 連線。(例如:資料庫的連線用長連線, 如果用短連線頻繁的通訊會造成 socket 錯誤,而且頻繁的 socket 建立也是對資源的浪費。)

短連線:**的 http 服務一般都用短鏈結,因為長連線對於服務端來說會耗費一定的資源,像 web **這麼頻繁的成千上萬甚至上億客戶端的連線用短連線會更省一些資源,如果用長連線,而且同時有成千上萬的使用者,如果每個使用者都占用乙個連線的話,伺服器負荷很大,併發量大,但每個使用者無需頻繁操作情況下需用短連線好。

長連線 短連線

長連線在web中的運用 如果沒有客戶端大量的訪問,可以採用html5的serversocket長連線 例如hudson 執行時會實時的返回當前執行的結果 vmstat 監控 b 長連線 資料庫連線 短連線 http連線 b b 一 長連線與短連線 b 長連線 client方與server方先建立連線...

長連線 短連線

參考鏈結 怎麼理解tcp的面向連線和udp的無連線 不面向連線 長連線的幾種實現方式 關於長連線和短連線的理解及使用場景 連線其實只是雙方都維護了乙個狀態,通過每一次通訊來維護狀態的變更 在 http 1.0 中 在 http 1.1 中則 可以在一次連線中處理多個請求,並且多個請求可以重疊進行,不...

Http 長連線 短連線 長輪詢 短輪詢

短連線 每次http請求都會建立tcp連線,管理容易 長連線 只需要建立一次tcp連線,以後http請求重複使用同乙個tcp連線,管理難 http1.1規定了預設保持長連線 http persistent connection 也有翻譯為持久連線 資料傳輸完成了保持tcp連線不斷開 不發rst包 不...