websocket和http的區別:1、WebSocket是雙向通訊協議,模擬Socket協議,可以雙向發送或接受訊息,而HTTP是單向的;2、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一樣,則是典型的應用層協定。
總結:
Socket是傳輸控制層接口,WebSocket是應用層協定。
三、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中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver Mac版
視覺化網頁開發工具

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

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

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

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