websocket

  1. WebSocket
    1. 主要特性
    2. websocket和tcp的区别和关联
    3. websocket怎么保证安全性

WebSocket

一次握手就能使客户端和服务端建立长连接,并进行双向传输
与http相比websocket协议每次数据传输的头信息都比较小,节约带宽

在springboot项目中,一般采用@ServerEndPoint+@Component
@ServerEndpoint 该注解可以将类定义成一个WebSocket服务器端
@OnOpen 表示有浏览器链接过来的时候被调用
一般将建立的session信息存入会话对象中进行保存。
@OnClose 表示浏览器发出关闭请求的时候被调用
@OnMessage 表示浏览器发消息的时候被调用
@OnError 表示报错了

主要特性

  • 互动性
  • 即时更新
  • 低延迟
  • 高兼容性
  • 加密传输
  • 跨平台

websocket和tcp的区别和关联

websocket作为运行在tcp之上的高效的通信协议,提供了长期开启客户端和服务器之间双向通信通道,与tcp三次握手过程类似。websocket的握手通过http完成,建立后,通道保持开放以进行数据交换,确保了tcp协议的可靠传输和流量控制

核心区别:

  • 建立连接:除了经典的tcp三次握手之外,需要http协议头中的upgrade字段以升级至websocket连接
  • 数据传输单位:倾向与以消息为单位传输数据,tcp是字节流
  • 数据处理:websocket相对于tcp,添加了数据压缩和消息分片的额外处理
  • 实时性:实时交互能力

websocket怎么保证安全性

  • 使用CSRF token,请求令牌等方案保护websocket握手过程,防止websocket握手过程被CSRF攻击所利用
  • 使用wss协议,基于tls的websocket
  • 硬编码的websocket的url接口,以保证用户的输入无法篡改此url

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。