WebSocket和HTTP

首先,最重要的两点:
1,WebSocket和HTTP都是基于TCP协议的两个不同的协议
2,WebSocket依赖于HTTP协议
      实际上,WebSocket为H5出现,它是HTTP协议的扩展,与HTTP协议相比,可以实现客户端和服务器的长连接,而且支持双向通信
      既然,WebSocket依赖于HTTP连接,那么它如何从连接的HTPP协议转化为WebSocket协议?
      其实,WebSocket协议在第一次握手连接时,是通过HTTP协议传送给服务端WebSocket支持的版本号、协议的字版本号、原始地址、主机地址等一些列字段

GET/chat HTTP/1.1
Host:server.demo.com
Upgrade:websocket
Connection:Upgrade
Sec-WebSocket-Key:dGHllHNhbXBsZSBub25jZQ==
Origin:http://test.com
Sec-WebSocket-Version:13

      上面报文最关键的地方,就是有个Upgrade首部,这个就是用来把当前的HTTP请求升级到WebSocket协议,这个是属于HTTP协议本身的内容,是为了扩展支持其他的通讯协议。倘若服务器支持新的协议,则必须返回101:

HTTP/1.1 101 Switching Protocols
Upgrade:websocket
Connection:Upgrade
Sec-WebSocket-Accept:s3pOLMBiTvaxqcQ9CDzRns+xAS=

如果请求成功,就触发onopen事件,否则触发onerror事件,此后的传输就不再依赖HTTP协议

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值