二维码扫码登录
短轮询(伪服务器推)
客户端每隔一到两秒对向后端发送一个请求,看看用户是否成功扫码
问题
1.产生大量http请求,占用带宽资源,也会增加服务器负担
2.用户可能要一到两秒的时间后才能成功登录上
长轮询
客户端将超时设置的很大(比如30s),其中得到了后端响应,用户就成功登录,如果超时立马发送下一次请求,(感觉也可以刷新二维码,要求用户重新刷码)
websocket
适用于聊天室,或者网页游戏等想要服务器主动发消息的情况(打开b站看视频前就有101,switch protocol)
为什么要用wbsocket
http在诞生之初是半双工的,同一时间下只能一端发送数据,为了解决这种问题就使用websocket协议
websocket的建立流程
客户端想升级成websocket协议,就要先发送101请求,并设置upgrade:websocket和一串base64码的headers,如果服务器也支持websocket的话就升级协议,将客户端的base64码用私钥签名后设置**Sec-WebSocket-Accept:**到headers里面