websocket概念简介

本文主要介绍websocket的相关概念及知识,包含:

  • 概念
  • 报文格式

一、概念

websocket是由html5提出的一种基于TCP协议的支持客户端和服务端进行全双工通信的协议。
传统的http协议是无状态的,并且服务端是被动的,只有在客户端发起请求时返回相应的响应消息,一个请求消息对应一个响应消息,服务端无法主动向客户端推送消息,这样导致了一些涉及到即使消息相应的web应用需要使用以下方式进行实时消息的传送:

  1. 轮询(polling)
    即客户端不断地向服务器发起请求,客户端依次进行响应,很显然这样的方式非常地浪费资源,并且需要服务端有很快的响应速度。
  2. 长连接(long-polling)
    长连接是指客户端在向服务端发起请求以后,服务端直到发生更新的时候将响应消息返回给客户端。 这里具体的实现又分为长轮询和流技术两种技术。

这种情况下websocket出现,很好地解决了以上问题,已经被广泛地使用在涉及到实时消息响应的相关应用中。


二、报文格式

1. 请求报文格式
GET /webfin/websocket/ HTTP/1.1
Host: localhost
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: xqBt3ImNzJbYqRINxEFlkg==
Origin: <a href="http://localhost/"><code>http://localhost</code></a>:8080
Sec-WebSocket-Version: 13

可以看到报文格式类似HTTP协议的报文格式,其中主要是Upgrade(表明是websocket类型的消息)、Connection、Sec-WebSocket-Key(经过base64编码的密文)、Sec-WebSocket-Version(协议版本)几个字段。


2. 响应报文格式
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: K7DJLdLooIwIG/MOpvWFB3y3FE8=

响应报文中的Sec-WebSocket-Accept对于请求报文中的Sec-WebSocket-Key。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值