Websocket基础知识篇
发布日期:2021-07-19 12:30:24 浏览次数:37 分类:技术文章

本文共 1195 字,大约阅读时间需要 3 分钟。

WebSocket介绍

websocket是HTML5的一种新协议,允许服务器向客户端传递信息,实现浏览器和客户端双工通信。先简单介绍下WebSocket。 我们都知道Http是处于应用层的一个通信协议,但是只支持单向主动通信,做不到服务器主动向客户端推送消息。而且Http是无状态的,即每次通信都没有关联性,导致跟服务器关系不紧密。

为了解决和服务器长时间通信的痛点呢,HTML5规范引出了WebSocket协议(知道这名字咋来的吧,人家HTML5规范引出的,随爸姓),是一种建立在TCP协议基础上的全双工通信的协议。他跟Http同属于应用层协议,下层还是需要通过TCP建立连接。

但是,WebSocket在TCP连接建立后,还要通过Http进行一次握手,也就是通过Http发送一条GET请求消息给服务器,告诉服务器我要建立WebSocket连接了,你准备好哦,具体做法就是在头部信息中添加相关参数。然后服务器响应我知道了,并且将连接协议改成WebSocket,开始建立长连接。

websocket有哪些特点?

与http协议有良好的兼容性;

建立在TCP协议之上,和http协议同属于应用层;
数据格式比较轻量,性能开销小,通信高效;
可以发送文本,也可以发送二进制;
没有同源限制,可以与任意服务器通信。

http和websocket的区别?

http协议是短链接,因为请求之后,都会关闭连接,下次请求需要重新打开链接。

websocket协议是一种长连接,只需要通过一次请求来初始化连接,然后所有请求和响应都是通过TCP链接进行通信。

websocket和socket的区别?

socket是应用层与TCP/IP协议通信的中间软件抽象层,它是一组接口。而websocket协议是一个完整的应用层协议,拥有一套完整的API。

在这里插入图片描述
简单说明下参数:

URL一般是以ws或者wss开头,ws对应Websocket协议,wss对应在TLS之上的WebSocket。类似于Http和Https的关系。

请求方法为GET方法。
Connection:Upgrade,表示客户端要连接升级,不用Http协议。
Upgrade:websocket, 表示客户端要升级建立Websocket连接。
Sec-Websocket-Key:key, 这个key是随机生成的,服务器会通过这个参数验证该请求是否有效。
Sec-WebSocket-Version:13, websocket使用的版本,一般就是13。
Sec-webSocket-Extension:permessage-deflate,客户端指定的一些扩展协议,比如这里permessage-deflate就是WebSocket的一种压缩协议。
响应码101,表示响应协议升级,后续的数据交互都按照Upgradet指定的WebSocket协议来。

转载地址:https://blog.csdn.net/jdsnpgxj/article/details/110437224 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:freertos学习之任务调度切换
下一篇:Ubuntu输入正确密码后无法登陆桌面仍然跳转输入登陆界面的解决方法

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月16日 06时19分45秒