|
一、什么是http協(xié)議 HTTP是一個應(yīng)用層協(xié)議,無狀態(tài)的,端口號為80。主要的版本有1.0/1.1/2.0.
二、什么是websocket Websocket是html5提出的一個協(xié)議規(guī)范,是為解決客戶端與服務(wù)端實時通信。本質(zhì)上是一個基于tcp,先通過HTTP/HTTPS協(xié)議發(fā)起一條特殊的http請求進行握手后創(chuàng)建一個用于交換數(shù)據(jù)的TCP連接。 WebSocket優(yōu)勢: 瀏覽器和服務(wù)器只需要要做一個握手的動作,在建立連接之后,雙方可以在任意時刻,相互推送信息。同時,服務(wù)器與客戶端之間交換的頭信息很小。 三、什么是長連接、短連接
連接->傳輸數(shù)據(jù)->關(guān)閉連接 HTTP是無狀態(tài)的,瀏覽器和服務(wù)器每進行一次HTTP操作,就建立一次連接,但任務(wù)結(jié)束就中斷連接。 也可以這樣說:短連接是指SOCKET連接后發(fā)送后接收完數(shù)據(jù)后馬上斷開連接。
連接->傳輸數(shù)據(jù)->保持連接 -> 傳輸數(shù)據(jù)-> 。。。 ->關(guān)閉連接。 長連接指建立SOCKET連接后不管是否使用都保持連接,但安全性較差。 四、http和websocket的長連接區(qū)別 HTTP1.1通過使用Connection:keep-alive進行長連接,HTTP 1.1默認(rèn)進行持久連接。在一次 TCP 連接中可以完成多個 HTTP 請求,但是對每個請求仍然要單獨發(fā) header,Keep-Alive不會永久保持連接,它有一個保持時間,可以在不同的服務(wù)器軟件(如Apache)中設(shè)定這個時間。這種長連接是一種“偽鏈接” websocket的長連接,是一個真的全雙工。長連接第一次tcp鏈路建立之后,后續(xù)數(shù)據(jù)可以雙方都進行發(fā)送,不需要發(fā)送請求頭。 keep-alive雙方并沒有建立正真的連接會話,服務(wù)端可以在任何一次請求完成后關(guān)閉。WebSocket 它本身就規(guī)定了是正真的、雙工的長連接,兩邊都必須要維持住連接的狀態(tài)。 參考鏈接: 1.http和socket之長連接和短連接區(qū)別 https://www.jianshu.com/p/b68d2b26f5f4
|
|
|
來自: jackeyqing > 《待分類》