一篇關于HTTP & WebSocket有什么區別?你會嗎?
1 什么是WebSocket?
WebSocket從滿足基于Web的日益增長的實時通信需求應運而生,解決了客戶端發起多個Http請求到服務器資源瀏覽器必須要在經過長時間的輪詢問題,實現里多路復用,是全雙工、雙向、單套接字連接,在WebSocket協議下服務器和客戶端可以同時發送信息。
2 WebSocket和Http的異同點
同:
- 建立在TCP之上,通過TCP協議來傳輸數據。
- 都是可靠性傳輸協議。
- 都是應用層協議。
異:
- WebSocket是HTML5中的協議,支持持久連接,HTTP不支持持久連接
- HTTP是單向協議,只能由客戶端發起,做不到服務器主動向客戶端推送信息。
3 WebSocket和Socket
Socket本身并不是一個協議,它工作在OSI模型會話層,是一個套接字,TCP/IP網絡的API,是為了方便大家直接使用更底層協議而存在的一個抽象層。Socket其實就是一個門面模式,它把復雜的TCP/IP協議族隱藏在Socket接口后面,對用戶來說,一組簡單的接口就是全部,讓Socket去組織數據,以符合指定的協議。
而WebSocket則是一個典型的應用層協議。
4 WebSocket HTTP和TCP/IP
WebSocket和HTTP一樣,都是建立在TCP之上,通過TCP來傳輸數據。
http和websocket并不能說是完全平等完全分開的兩樣東西,websocket準確地來說應該算是http的下屬一個分類。
參考資料
- https://zhihu.com/question/29615964
- https://cnblogs.com/mengbin0546/p/12508848.html

































