自学做网站多久,app和微网站的对比,百度搜索关键词热度,太仓市住房和建设局网站WebSocket理解 WebSocket定义与HTTP关系相同点:不同点#xff1a;联系总体过程 HTTP问题长轮询Ajax轮询 WebSocket特点 WebSocket
定义 本质上是TCP的协议 持久化的协议 实现了浏览器和服务器的全双工通信#xff0c;能更好的节省服务器资源和带宽 与HTTP关系
相同点: 基于… WebSocket理解 WebSocket定义与HTTP关系相同点:不同点联系总体过程 HTTP问题长轮询Ajax轮询 WebSocket特点 WebSocket
定义 本质上是TCP的协议 持久化的协议 实现了浏览器和服务器的全双工通信能更好的节省服务器资源和带宽 与HTTP关系
相同点: 基于TCP协议可靠性的传输协议 位于应用层 不同点 WebSocket是双向通讯协议而http是单向的 WebSocket需要浏览器和服务器握手进行建立连接http浏览器发起向服务器连接服务器预先是不知道的 联系
WebSocket在建立握手时数据是通过http传输 WebSocket建立后在真正传输数据时不需要http协议
总体过程 首先当客户端发起http请求经过3次握手后建立TCP服务器收到客户端的握手请求后 采用http协议回馈数据客户端收到连接成功的消息后开始借助TCP传输信进入全双工 HTTP问题 http是一种无状态协议每当会话完成后服务端都不知道下一个用户是谁进而需要每次知道对方是谁才能进行相应的响应 http请求采用一次请求每次请求都会携带请求头对于实时通讯每次请求解析请求头需要一定的时间效率低 客户端主动发服务端被动发一次请求一次响应不能主动发送 长轮询
客户端发起长轮询若服务端数据无变更会hold住请求直到服务端数据发生变更或一段时间后再进行下一次轮询 长轮询解决http不能实时更新的弊端因为这个时间很短发起请求即处理请求返回响应实现了“伪·长连接” 它主要解决的就是推送延迟和服务器压力 推动延迟服务端数据发生变更后长轮询结束立刻返回响应给客户端。 服务器压力长轮询的间隔期一般很长例如 30s、60s并且服务端 hold 住连接不会消耗太多服务端资源。
Ajax轮询
定义 规定每隔一段时间就由客户端发起一次请求查询有没有新消息如果有就返回如果没有等待相同的时间间隔再次询问 解决了http不能实时更新的弊端因为这个时间很短发起请求即处理请求返回响应把这个过程放大n倍本质上还是request response 总的来说就是解决推送延迟、服务器压力、推送延迟和服务器压力无法中和 推送延迟 服务端压力 推送延迟和服务端压力无法中和降低轮询的间隔延迟降低压力增加增加轮询的间隔压力降低延迟增高
WebSocket特点 一旦WebSocket连接建立后后续数据都以帧序列的形式传输。在客户端断开WebSocket连接或Server端中断连接前不需要客户端和服务端重新发起连接请求。在海量并发及客户端与服务器交互负载流量大的情况下极大的节省了网络带宽资源的消耗有明显的性能优势且客户端发送和接受消息是在同一个持久连接上发起实现了“真·长链接”实时性优势明显。 WebSocket有以下特点
是真正的全双工方式建立连接后客户端与服务器端是完全平等的可以互相主动请求。而HTTP长连接基于HTTP是传统的客户端对服务器发起请求的模式。HTTP长连接中每次数据交换除了真正的数据部分外服务器和客户端还要大量交换HTTP header信息交换效率很低。Websocket协议通过第一个request建立了TCP连接之后之后交换的数据都不需要发送 HTTP header就能交换数据这显然和原有的HTTP协议有区别所以它需要对服务器和客户端都进行升级才能实现主流浏览器都已支持HTML5