谈谈对 websocket 的理解?

阅读 1.8k
2 个回答

WebSocket 本质上是一种计算机网络【应用层】的协议,用来弥补【 http 协议】在【持久通信】和【非真正全双工通信(请求-响应)】方面的不足

WebSocket 作为 HTML5 规范的一部分,得到了所有主流浏览器的支持,同时还兼容了 HTTP 协议,默认使用 HTTP 的 80 端口 和 443 端口,可使用 HTTP header 进行协议升级

WebSocket 出现的原因:

  • HTTP 协议采用【请求-响应】的形式,即通信只能由客户端发起,服务端进行响应处理,【服务器】不可以主动向【客户端】推送信息
  • HTTP/2 虽具备服务器推送功能,但只能推送静态资源,无法推送指定信息
  • WebSocket 最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,且是基于 TCP 的可靠传输协议

特点:

  • 支持【双向通信】,实时性更强
  • 可发送【文本、二进制】格式的数据
  • 数据格式比较轻量,性能开销小,通信高效
  • 建立在【TCP 协议】之上,服务端的实现比较容易
  • 没有【同源限制】,客户端可以与任意服务器通信
  • 协议标识符是【ws(如果加密,则为 wss)】,服务器网址就是 URL
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
新手上路,请多包涵

WebSocket 是一种在客户端和服务器之间建立双向通信通道的协议,它允许服务器实时推送数据到客户端,同时也允许客户端向服务器发送数据,而无需进行多次 HTTP 请求。

WebSocket 协议的工作方式是,在客户端和服务器之间建立一条 TCP 连接,然后通过握手协议进行协商,建立双向通信通道。一旦建立连接,客户端和服务器之间就可以互相发送消息,数据包以二进制形式进行传输,不需要 HTTP 的请求和响应头,可以大幅度减少通信数据量和延迟。

WebSocket 通常用于实时性要求较高的应用场景,例如在线聊天、在线游戏、实时交易等。WebSocket 的优点包括实时性好、通信效率高、兼容性好等,但是需要注意安全性和稳定性的问题,例如需要防范跨站脚本攻击和网络中断等情况。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题