面試題: 什么是websocket


面試題: 什么是websocket

 

參考鏈接:http://www.ruanyifeng.com/blog/2017/05/websocket.html?utm_source=tuicool&utm_medium=referral

 

 

1. websocket使用也比較多的,它和http協議沒有太多關系,但是有交集在於:(Websocket 其實是一個新協議,跟 HTTP 協議基本沒有關系,只是為了兼容現有瀏覽器,所以在握手階段使用了 HTTP)

 

2. 首先,WebSocket 是一個持久化的協議,相對於 HTTP 這種非持久的協議來說。(相對於http來說,http是一次請求一次響應,結束:request--response結束。在通訊過程中,一直在請求響應,反復如此)而websocket通過一次http握手,整個通訊建立在一次連接狀態中,服務端會一直知道你的信息,知道關閉websocket,不需要服務端反復解析。在傳輸中節省流量和時間,提高性能

 

3. HTTP 協議有一個缺陷:通信只能由客戶端發起。而websocket協議,實現了服務器可以主動向客戶端推送信息,客戶端也可以主動向服務器發送信息,是真正的雙向平等對話,屬於服務器推送技術的一種。

 

 

http websocket區別

 

4. WebSocket 的用法相當簡單。

var ws = new WebSocket("wss://echo.websocket.org");

ws.onopen = function(evt) { 
  console.log("Connection open ..."); 
  ws.send("Hello WebSockets!");
};

ws.onmessage = function(evt) {
  console.log( "Received Message: " + evt.data);
  ws.close();
};

ws.onclose = function(evt) {
  console.log("Connection closed.");
};

圖示:

 

 

WebSocket

   WebSocket協議為web應用程序客戶端和服務端之間提供了一種全雙工通信機制。

特點:

  (1)握手階段采用HTTP協議,默認端口是80和443

  (2)建立在TCP協議基礎之上,和http協議同屬於應用層

  (3)可以發送文本,也可以發送二進制數據。

  (4)沒有同源限制,客戶端可以與任意服務器通信。

  (5)協議標識符是ws(如果加密,為wss),如ws://localhost:8023


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM