面试题: 什么是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

posted @ 2020-06-11 11:15  jane_panyiyun  阅读(3886)  评论(0编辑  收藏  举报