搜尋
首頁常見問題websocket和http的差別

websocket和http的差別

Dec 07, 2020 am 10:24 AM
httpwebsocket

websocket和http的區別:1、WebSocket是雙向通訊協議,模擬Socket協議,可以雙向發送或接受訊息,而HTTP是單向的;2、WebSocket是需要瀏覽器和伺服器握手進行建立連接的,而http是瀏覽器發起向伺服器的連線。

websocket和http的差別

本文操作環境:Windows7系統,Dell G3電腦。

推薦:《程式設計影片

一、WebSocket 是什麼?

WebSocket是HTML5規範提出的一種協定;目前除了完犢子的IE瀏覽器,其他瀏覽器都基本上支援。他是一種協議,萬變不離其宗,也是基於TCP協議的;和HTTP協議是並存的兩種協議。

WebSocket是HTML5中的協定。 HTML5 Web Sockets規格定義了Web Sockets API,支援頁面使用Web Socket協定與遠端主機進行全雙工的通訊。它引入了WebSocket介面並且定義了一個全雙工的通訊通道,透過一個單一的套接字在Web上進行操作。

HTML5 Web Sockets以最小的開銷有效率地提供了Web連線。相較於經常需要使用推送即時資料到客戶端甚至透過維護兩個HTTP連線來模擬全雙工連線的舊的輪詢或長輪詢(Comet)來說,這就極大的減少了不必要的網路流量與延遲。

要使用HTML5 Web Sockets從一個Web客戶端連接到一個遠端端點,你要建立一個新的WebSocket實例並為之提供一個URL來表示你想要連接到的遠端端點。

該規範定義了ws://以及wss://模式來分別表示WebSocket和安全WebSocket連接,這就跟http:// 以及https:// 的區別是差不多的。

一個WebSocket連線是在客戶端與伺服器之間HTTP協定的初始握手階段將其升級到Web Socket協定來建立的,其底層仍是TCP/IP連線。

二、WebSocket與Socket的關係

Socket其實不是一個協議,而是為了方便使用TCP或UDP而抽像出來的一層,是位於應用層和傳輸控制層之間的一組介面。

「Socket是應用層與TCP/IP協定族通訊的中間軟體抽象層,它是一組接口,提供一套呼叫TCP/IP協定的API。

在設計模式中,Socket其實就是一個門面模式,它把複雜的TCP/IP協議族隱藏在Socket接口後面,對用戶來說,一組簡單的接口就是全部,讓Socket去組織數據,以符合指定的協議。”

當兩台主機通訊時,必須透過Socket連接,Socket則利用TCP/IP協定建立TCP連線。 TCP連線則更依賴底層的IP協定,IP協定的連線則依賴連結層等較低層次。

WebSocket就像HTTP一樣,則是典型的應用層協定。

websocket和http的差別

總結:

Socket是傳輸控制層接口,WebSocket是應用層協定。

三、WebSocket與HTTP的關係

關係圖:

websocket和http的差別

#相同點

#都是一樣基於TCP的,都是可靠性傳輸協定。

都是應用層協定。

區別

WebSocket是雙向通訊協議,模擬Socket協議,可以雙向發送或接受訊息。 HTTP是單向的。

WebSocket是需要瀏覽器和伺服器握手進行建立連線的。而http是瀏覽器發起到伺服器的連接,伺服器預先並不知道這個連接。

聯繫

WebSocket在建立握手時,資料是透過HTTP傳輸的。但是建立之後,真正傳輸時候是不需要HTTP協定的。

總結:

在WebSocket中,只需要伺服器和瀏覽器透過HTTP協定進行一個握手的動作,然後單獨建立一條TCP的通訊通道進行資料的傳送。

WebSocket連線的過程是:

首先,客戶端發起http請求,經過3次握手後,建立起TCP連線;http請求裡存放WebSocket支援的版本號等信息,如:Upgrade、Connection、WebSocket-Version等;

然後,伺服器收到客戶端的握手請求後,同樣採用HTTP協定回饋資料;

最後,客戶端收到連線成功的訊息後,開始借助於TCP傳輸通道進行全雙工通訊。

以上是websocket和http的差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),