WebSocket

原创
08/14 10:00
阅读数 49

Websocket

  • WebSocket是一个和http协议一样,在应用层工作的协议,他们两个的关系是相交圆,也就是说,WebSocket的建立需要http的协助。

  • WebSocket协议在http报文中的特殊标志,WebSocket使用http报文的目的就是完成两次握手,达到协议切换的目的

    • 对请求头的影响

      Connection: Upgrade 给服务器说明,发起的是WebSocket连接
      Upgrade: websocket 给服务器说明,发起的是WebSocket连接
      Sec-WebSocket-Version: 13 WebSocket的版本,因为之前WebSocket的版本很多,最终人们商定使用13版本
      Sec-WebSocket-Key: bKdPyn3u98cTfZJSh4TNeQ== 一个由浏览器生成的base64随机值,用来验证服务器是不是可以支持WebSocket
      Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
    • 响应头的影响

      HTTP/1.1 101 Switching Protocols 这是对http状态码的影响,101状态码
      Upgrade: websocket 说明自己使用的是websocket协议
      Connection: Upgrade
      Sec-WebSocket-Accept: 4EaeSCkuOGBy+rjOSJSMV+VMoC0= 服务器响应自己可以支持WebSocket协议
      WebSocket-Origin: file://
      WebSocket-Location: ws://192.168.43.135:12345/
    • 说白了,WebSocket的诞生就是为了解决http的被动性问题,就是http协议是一问一答式的,在http1.0的时候一个请求对应一个响应,并且一对并称一个http连接,也就是http无状态的原因,在http1.1中加入了keep-live,让多对http请求和响应组成一个http连接,但是由于有像消息推送的业务的出现,需要服务器向客户端不断的发送更新的消息,这种的处理方式有,每隔一段时间,客户端问服务器,balabala,你有新消息没,然后服务器说没有,当服务器就是没有消息时,两者的对话都是出于这种没有意义的询问中,那么有没有,客户端只询问一次服务器,然后服务器有新消息了,主动向客户端发送呢。这就是WebSocket在做的事情,使用http协议建立WebSocket连接,然后只握手一次,然后一有新消息,服务器端就主动发送消息到客户端。

展开阅读全文
打赏
0
0 收藏
分享

作者的其它热门文章

加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部