http是乙個應用層協議,無狀態的,埠號為80。主要的版本有1.0/1.1/2.0.
http/1.* 一次請求-響應,建立乙個連線,用完關閉;
http/1.1 序列化單執行緒處理,可以同時在同乙個tcp鏈結上傳送多個請求,但是只有響應是有順序的,只有上乙個請求完成後,下乙個才能響應。一旦有任務處理超時等,後續任務只能被阻塞(線頭阻塞);
http/2 並行執行。某任務耗時嚴重,不會影響到任務正常執行
websocket是html5提出的乙個協議規範,是為解決客戶端與服務端實時通訊。本質上是乙個基於tcp,先通過http/https協議發起一條特殊的http請求進行握手後建立乙個用於交換資料的tcp連線。
websocket優勢: 瀏覽器和伺服器只需要要做乙個握手的動作,在建立連線之後,雙方可以在任意時刻,相互推送資訊。同時,伺服器與客戶端之間交換的頭資訊很小。
短連線:
連線->傳輸資料->關閉連線
http是無狀態的,瀏覽器和伺服器每進行一次http操作,就建立一次連線,但任務結束就中斷連線。
也可以這樣說:短連線是指socket連線後傳送後接收完資料後馬上斷開連線。
長連線:
連線->傳輸資料->保持連線 -> 傳輸資料-> 。。。 ->關閉連線。
長連線指建立socket連線後不管是否使用都保持連線,但安全性較差。
http1.1通過使用connection:keep-alive進行長連線,http 1.1預設進行持久連線。在一次 tcp 連線中可以完成多個 http 請求,但是對每個請求仍然要單獨發 header,keep-alive不會永久保持連線,它有乙個保持時間,可以在不同的伺服器軟體(如apache)中設定這個時間。這種長連線是一種「偽鏈結」
websocket的長連線,是乙個真的全雙工。長連線第一次tcp鏈路建立之後,後續資料可以雙方都進行傳送,不需要傳送請求頭。
keep-alive雙方並沒有建立正真的連線會話,服務端可以在任何一次請求完成後關閉。websocket 它本身就規定了是正真的、雙工的長連線,兩邊都必須要維持住連線的狀態。
http協議中長連線和短連線介紹
tcp連線當網路通訊時採用tcp協議時,在真正的讀寫操作之前,客戶端與伺服器端之間必須建立乙個連線,當讀寫操作完成後,雙方不再需要這個連線時可以釋放這個連線。連線的建立依靠 三次握手 而釋放則需要 四次揮手 所以每個連線的建立都會帶來資源和時間開銷。http協議的長連線和短連線,實質上是tcp協議的...
HTTP 長連線和短連線
1.http協議與tcp ip協議的關係 http的長連線和短連線本質上是tcp長連線和短連線。http屬於應用層協議,在傳輸層使用tcp協議,在網路層使用ip協議。ip協議主要解決網路路由和定址問題,tcp協議主要解決如何在ip層之上可靠的傳遞資料報,使在網路上的另一端收到發端發出的所有包,並且順...
socket連線和http連線的區別
http協議 簡單物件訪問協議,對應於應用層 http協議是基於tcp連線的 tcp協議 對應於傳輸層 ip協議 對應於網路層 tcp ip是傳輸層協議,主要解決資料如何在網路中傳輸 而http是應用層協議,主要解決如何包裝資料。socket是對tcp ip協議的封裝,socket本身並不是協議,而...