websocket 面试题
1. 什么是WebSocket?WebSocket与http的区别?
- webSocket定义
webSocket: 可以让服务器主动向客户端发送消息,适合开发聊天室,多人游戏等协作应用。
WebSocket协议是基于TCP的一种新的网络协议。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
- WebSocket与Socket的区别
WebSocket拥有完整的应用层协议,包含一套标准的API
Socket是一组接口,是应用层与TCP/IP协议通信的中间软件抽象层
- HTTP与WebSocket区别
http是短连接,请求之后会关闭连接。
WebSocket长连接,只需通过一次请求初始化连接,然后所有的请求和响应都是通过这个TCP连接进行通信。
2. WebSocket特点
与http协议有良好的兼容性
建立在TCP协议之上,与http同属于应用层
数据量小、性能开销小、通信高效
可以发送文本和二进制
可以与任意服务器通信
握手阶段采用http协议,默认端口是80和443
协议标识字符ws、加密wss
服务器可以主动向客户端请求
3. WebSocket协议具有以下特征:
推送功能
支持服务器端向客户端推送功能。 服务器可以直接发送数据,而无需等待客户端的请求。减少通信量
只要建立了websocket连接,连接就会保持。 在此期间,可以连续发送消息,直到请求关闭为止。 这避免了HTTP的非状态性质。
与http相比,不仅减少了每个连接的总开销,而且websocket的表头信息量也很小,并且通信量也减少了。
- 减少资源消耗
那么,为什么他要解决服务器上的资源消耗问题呢?
实际上,我们使用的程序需要经过两层代理,即HTTP协议由Nginx之类的服务器解析,然后发送到相应的Handler(PHP等)进行处理。
简而言之,我们有一个非常快的接线员(Nginx),负责将问题转发给相应的客户服务(Handler)。 基本上,接线员的速度是足够的,但是每次都会被卡在客服(Handler)中,并且客服的处理速度总是太慢。 导致客服不足。Websocket解决了这样的问题。 建立后,它可以直接与操作员建立持久连接。 当有信息时,客户服务会想方法通知接线员,然后接线员以统一的方式将其转移给客户。 这样可以解决客服处理速度过慢的问题。
本作品采用《CC 协议》,转载必须注明作者和本文链接