websocket和http的区别(什么是websocket)

 分类:IT知识时间:2022-12-12 07:36:02点击:

WebSocket是一种网络传输协议,可在单个TCP连接上进行全双工通信,位于OSI模型的应用层。

websocket 通信过程

WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接,并进行双向数据传输。

WebSocket 的其他特点:

  • 建立在 TCP 协议之上
  • 与 HTTP 协议有着良好的兼容性。默认端口也是80和443,并且握手阶段采用 HTTP 协议,因此握手时不容易屏蔽,能通过各种 HTTP 代理服务器。
  • 数据格式比较轻量,性能开销小,通信高效。
  • 可以发送文本,也可以发送二进制数据。
  • 没有同源限制,客户端可以与任意服务器通信。
  • 协议标识符是ws(如果加密,则为wss),服务器网址就是 URL。
  • 在WebSocket之前,要实现实时拿到服务端的数据有两种方式:

    ajax轮询

    ajax轮询的原理非常简单,让浏览器隔个几秒就发送一次请求,询问服务器是否有新信息。

    long poll

    long poll 其实原理跟 ajax轮询 差不多,都是采用轮询的方式,不过采取的是阻塞模型(一直打电话,没收到就不挂电话),也就是说,客户端发起请求后,如果没消息,就一直不返回 Response 给客户端。直到有消息才返回,返回完之后,客户端再次建立连接,周而复始。

    websockets 相对于 http 的优点

  • 主动性:可以主动由服务端发数据到客户端,而http 方式只有客户端有请求,服务端才会响应返回
  • 节约资源:http 方式轮询 非常消耗资源,HTTP请求与回复可能会包含较长的头部,而websockets 只需要经过一次 HTTP 请求,就可以做到源源不断的信息传送了
  • websocket 常见应用

  • 聊天功能
  • 协同办公软件
  • 除注明外的文章,均为来源:老汤博客,转载请保留本文地址!
    原文地址: