客户端发送一次http请求,服务器返回一次http响应。
问题:如何在客户端没有发送请求的情况下,返回服务端的响应,网页可以得服务器数据?
1:http定时轮询 客户端定时发送http请求,eg:微信二维码登录。
会增加带宽,用户会感觉到卡顿
长轮询
将http超时时间设置的很大。在客户端发送http请求后,如果服务器在30s时间内服务器收到扫码请求,就立刻返回数据给客户端。
减少http请求个数
网页游戏需要大量数据怎么办?
http1.1是半双工,同一时间,客户端和服务器只有一方可以发送数据,为什么不用全双工?
http设计之初,只考虑看看网页文本的情景,客户端发送请求,服务器响应就够了,没有考虑网页游戏情景。
websocket只有在建立连接的时候用到了http协议,升级完成后就跟http没有任何关系了。
继承了tcp的全双工能力,并提供了解决粘包的方案。适用于网页游戏、聊天室、飞书等场景。