http和Tcp的長連接和短連接


. http協議和tcp/ip 協議的關系
(1) http是應用層協議,tcp協議是傳輸層協議,ip協議是網絡協議。
(2) IP協議主要解決網絡路由和尋址問題
(3) tcp協議主要解決在IP層協議之上,如何可靠的傳輸數據,即接收端收到的數據包的大小和順序,和發送端保持一致。tcp協議是可靠的面相連接的。

6.如何理解http協議是沒有狀態的
(1) http協議是無狀態的,指的是http協議對於事務處理沒有記憶功能,客戶端向服務端請求完數據之后,服務端不知道客戶端是什么狀態。

7.什么是長連接?短連接?
http的長連接和短連接,本質上是tcp層的長連接和短連接
(1) http 1.0 默認使用短連接,就是,客戶端和服務端每進行一次http操作,就建立一次連接,任務結束就中斷連接。如果請求的html中有網絡js和圖片,則需要新建連接去取。
client發起請求--建立連接--server響應請求---發送消息--關閉連接
建立連接--數據傳輸--關閉連接

(2) http 1.1 默認使用長連接,在使用的http協議,在響應頭會加上 Connection:keep-alive,當一個網頁打開完成之后,連接不會馬上關閉,再次訪問這個服務時,
會繼續使用這個長連接,而是在一段時間后關閉,這個時間可以再瀏覽器設置。
建立連接--數據傳輸......保持連接......數據傳輸--關閉連接

8.TPC短連接
當網絡通信使用tcp協議時,在真正的讀寫操作前,需要完成3次握手,來建立連接。當讀寫完成時,需要四次握手來釋放連接,每個連接的建立和釋放都是需要資源和時間的,所以長連接比短連接
更節省資源,效率更高(RPC比http高效的原因)

9.RPC比HTTP請求快的原因
(1)http使用http協議,rpc使用tcp協議,比http少了應用層,表示層,會話層,這3層
(2)rpc使用長連接,當網絡通信使用tcp協議時,在真正的讀寫操作前,需要完成3次握手,來建立連接。當讀寫完成時,需要四次握手來釋放連接,每個連接的建立和釋放都是需要資源和時間的,所以長連接比短連接
更節省資源,效率更高

10.長連接和短連接的優點和缺點
(1)長連接,可以省去較多的tpc建立和關閉操作,減少資源的浪費,節約時間。長連接多用於操作頻繁,點對點的通訊,而且連接數不能太多。數據庫的連接就是使用長連接,如果用短連接頻繁通訊會造成socke錯誤
,而且頻繁的Socket創建和銷毀也是對資源的消耗比較大。

(2)短連接,短連接對於服務器來說管理較為簡單,存在的連接都是有用的連接,不需要額外的控制手段,web網站一般使用短連接,因為長連接對服務端來說會消耗一定資源,而像WEB網站這么頻繁的成千上萬甚至上億客戶端的連接用短連接會更省一些資源,如果用長連接,而且同時有成千上萬的用戶,如果每個用戶都占用一個連接的,對資源消耗過大

11. tcp的keep-alive和http人Keep-alive
(1) Tcp的keep-alive是j檢查當前tcp是否存活,表現就是當一個連接在一段時間沒有數據傳輸是,一方會發一個心跳包,果對方有回包則表明當前連接有效,繼續監控。
這個“一段時間”可以設置。
WinHttp庫的設置:
WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL
Sets the interval, in milliseconds, to send a keep-alive packet over the connection. The default interval is 30000 (30 seconds). The minimum interval is 15000 (15 seconds). Using WinHttpSetOption to set a value lower than 15000 will return with ERROR_INVALID_PARAMETER

(2) http的Keep-alive是讓一個tcp連接活久點。在瀏覽器設置


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM