了解WebSocket
1.概念:
WebSocket是一种在单个TCP连接上进行全双工通信的协议,属于应用层协议。
WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
2.优点:
(1)较少的控制开销。在连接创建后,服务器和客户端之间交换数据时,用于协议控制的数据包头部相对较小。在不包含扩展的情况下,对于服务器到客户端的内容,此头部大小只有2至10字节(和数据包长度有关);对于客户端到服务器的内容,此头部还需要加上额外的4字节的掩码。相对于HTTP请求每次都要携带完整的头部,此项开销显著减少了。
(2)更强的实时性。由于协议是全双工的,所以服务器可以随时主动给客户端下发数据。相对于HTTP请求需要等待客户端发起请求服务端才能响应,延迟明显更少;即使是和Comet等类似的长轮询比较,其也能在短时间内更多次地传递数据。
(3)保持连接状态。与HTTP不同的是,Websocket需要先创建连接,这就使得其成为一种有状态的协议,之后通信时可以省略部分状态信息。而HTTP请求可能需要在每个请求都携带状态信息(如身份认证等)。
(4)更好的二进制支持。Websocket定义了二进制帧,相对HTTP,可以更轻松地处理二进制内容。
(5)可以支持扩展。Websocket定义了扩展,用户可以扩展协议、实现部分自定义的子协议。如部分浏览器支持压缩等。
(6)更好的压缩效果。相对于HTTP压缩,Websocket在适当的扩展支持下,可以沿用之前内容的上下文,在传递类似的数据时,可以显著地提高压缩率。
3.WebSocket和HTTP的区别
(1)含义不同:WebSocket是一种在单个TCP连接上进行全双工通信的协议;HTTP是超文本传输协议,是一个简单的请求-响应协议,运行在TCP之上,是单向的通信协议。
(2)连接方式不同:WebSocket需要浏览器和服务器握手进行建立连接;HTTP是浏览器发起向服务器的连接,服务器预先并不知道这个连接。
(3)连接长度和状态不同:WebSocket是持久连接,是有状态的双向连接;HTTP是短连接,是无状态的。
(4)数据传输方式不同:WebSocket允许服务器主动向客户端推送数据,实现了服务器和客户端之间的实时双向通信;HTTP协议是基于请求-响应模式的,客户端发送请求,服务器返回响应。
(5)数据格式不同:WebSocket可以传输任意格式的数据,包括文本、二进制、JSON等;HTTP协议传输的数据通常是文本或二进制数据。
(6)端口不同:WebSocket使用的默认端口是80(WS)或443(WSS);HTTP协议使用的默认端口是80(HTTP)或443(HTTPS)。
相关文章:
了解WebSocket
1.概念: WebSocket是一种在单个TCP连接上进行全双工通信的协议,属于应用层协议。 WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握…...
从开发角度理解漏洞成因(02)
文章目录 文件上传类需求文件上传漏洞 文件下载类需求文件下载漏洞 扩展 留言板类(XSS漏洞)需求XSS漏洞 登录类需求cookie伪造漏洞万能密码登录 持续更新中… 文章中代码资源已上传资源,如需要打包好的请点击PHP开发漏洞环境(SQL注…...
Web实时通信的学习之旅:轮询、WebSocket、SSE的区别以及优缺点
文章目录 一、通信机制1、轮询1.1、短轮询1.2、长轮询 2、Websocket3、Server-Sent Events 二、区别1、连接方式2、协议3、兼容性4、安全性5、优缺点5.1、WebSocket 的优点:5.2、WebSocket 的缺点:5.3、SSE 的优点:5.4、SSE 的缺点࿱…...
TMS320F280049 CLB模块--LUT4 OUTLUT(4)
LUT4 示意图如下: OUTLUT 示意图如下: 寄存器 参考文档: TMS320F28004x Real-Time Microcontrollers Technical Reference Manual (Rev. G)...
功能测试_分类_用例_方法
总结 测试分类 按阶段分类 是否查看源代码分类 是否运行分类 是否自动化 其他分类 软件质量模型 开发模型-瀑布模型 测试过程模型 v w 测试用例八大要素 用例编号 用例标题 …...
[沫忘录]MySQL 锁
[沫忘录]MySQL 锁 锁能够协调多线程或多进程并发访问某资源产生的数据冲突与错乱。而在数据库中,锁也是协调数据库访问的有效工具。 全局锁 能够锁住当前服务器所有数据库及其表。后续所有事务都只能进行读操作,而不能进行写操作或表属性更改。 典型…...
噪声嵌入提升语言模型微调性能
在自然语言处理(NLP)的快速发展中,大模型(LLMs)的微调技术一直是研究的热点。最近,一篇名为《NEFTUNE: NOISY EMBEDDINGS IMPROVE INSTRUCTION FINETUNING》的论文提出了一种新颖的方法,通过在训…...
XML文档基本语法
XML文档基本语法包括以下几个知识点: 开始标记(Start Tag):开始标记是XML元素的起始符号,由左尖括号(<)和元素名称组成。例如,是一个开始标记,表示一个名为"book…...
git开发工作流程
git开发工作流程 (1)先将远程代码pull到本地 (2)在本地上分支上进行开发 (3)开发完之后,push到远程分支 (4)由远程的master进行所有分支合并...
JDK生成https配置
keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:\https证书\weChat.keystore -validity 36500 -keypass 250250 keytool -importkeystore -srcstoretype JKS -srckeystore D:\https证书\weChat.keystore -srcstorepass 250250 -srcalias tomcat -srckeypass 25025…...
通过 Java 操作 redis -- set 集合基本命令
目录 使用命令 sadd ,smembers 使用命令 sismember 使用命令 scard 使用命令 spop 使用命令 sinter,sinterstore,sunion,sunionstore,sdiff,sdiffstore 关于 redis set 集合类型的相关命令推荐看Redis …...
WebSocket前后端建立以及使用
1、什么是WebSocket WebSocket 是一种在 Web 应用程序中实现双向通信的协议。它提供了一种持久化的连接,允许服务器主动向客户端推送数据,同时也允许客户端向服务器发送数据,实现了实时的双向通信。 这部分直接说你可能听不懂;我…...
C++数据结构之链表树图的存储
本文主要介绍用数组存储,结构只做简单介绍 目录 文章目录 前言 结构体实现 1、链表的存储 2、树的存储 3、图的存储 数组实现 1、链表实现 2、树和图的实现 总结 前言 在正常工程中,我们通常使用结构体或者类,来定义并使用如链表…...
又一位互联网大佬转行当网红,能写进简历么?
最近半个月,有两个中年男人仿佛住进了热搜。 一个是刚刚辟谣自己“卡里没有冰冷的 40 亿”的雷军,另一个则是在今年年初就高呼“如果有可能,企业家都要去当网红”的 360 创始人周鸿祎。 他也确实做到了。 先是作为当年 3Q 大战的当事人&…...
Codeforces Round 134 (Div. 1) A. Ice Skating (并查集)
Ice Skating 题面翻译 Description 给出n个点的横纵坐标,两个点互通当且仅当两个点有相同的横坐标或纵坐标,问最少需要加几个点才能使得所有点都两两互通 Input 第一行一个整数n表示点数,之后n行每行两个整数x[ i ]和y[ i ]表示第i个点的…...
深入了解 Flask Request
文章目录 获取请求数据获取请求信息文件上传总结 Flask 是一个轻量级的 Python Web 框架,其简洁的设计和灵活的扩展性使其成为了许多开发者的首选。在 Flask 中,处理 HTTP 请求是至关重要的,而 Flask 提供了丰富而强大的 request 对象来处理…...
前端测试策略与实践:单元测试、E2E测试与可访问性审计
前端测试策略是确保Web应用程序质量、性能和用户体验的关键组成部分。有效的测试策略通常包括单元测试、端到端(E2E)测试以及可访问性审计等多个层面。以下是关于这三类测试的策略与实践建议: 单元测试 定义与目的: 单元测试是针…...
修改el-checkbox样式
一定要在最外层; //未选中框/deep/ .el-checkbox__inner{border-color: #0862a3;}//选中框/deep/ .el-checkbox__input.is-checked .el-checkbox__inner{background-color: #0862a3;border-color: #0862a3;}//未选中框时右侧文字/deep/ .el-checkbox__label{}//选中…...
UE5缺少SDK,而无法在windows平台打包的解决方法
问题1:UE5缺少SDK,而无法在windows平台打包的解决方法(项目问题,做一下记录,没有参考性) (1)打不开:D:\imageworks-OpenColorIO-Configs-v1.0_r2-8-g0bb079c.tar 解决方案:从23拷贝D…...
4G,5G执法记录仪人脸识别、人脸比对使用说明
4G/5G执法记录仪或4G/5G智能安全帽,做前端人脸识别、人脸比对,采用了上市公司的成熟的人脸识别算法,需要支付LICENSE给算法公司,理论上前端设备支持30K的人脸库(受设备运行内存限制)。 4G/5G执法记录仪侧要…...
如何使用pretty-ts-errors:TypeScript错误追踪与性能优化终极指南
如何使用pretty-ts-errors:TypeScript错误追踪与性能优化终极指南 【免费下载链接】pretty-ts-errors 🔵 Make TypeScript errors prettier and human-readable in VSCode 🎀 项目地址: https://gitcode.com/gh_mirrors/pr/pretty-ts-error…...
给IPC相机调图像,别再瞎调了!一份保姆级的ISP线性模式调试顺序图(附避坑要点)
IPC相机图像调试实战指南:从线性模式到专业级画质优化 刚接触IPC相机图像调试的工程师们,常常会陷入参数迷宫——面对AE、AWB、Gamma、3DNR等数十个模块,该从何处入手?调试顺序的错误可能导致反复返工,甚至影响最终成像…...
为AI智能体构建持久化记忆系统:Shang Tsung项目实战解析
1. 项目概述:为AI智能体注入“灵魂”与“第二大脑”如果你和我一样,长期与各类AI智能体(Agent)打交道,无论是基于Claude Code、OpenClaw,还是其他本地化部署的LLM工具,你一定经历过那种令人沮丧…...
ZonyLrcToolsX:轻松获取完美歌词的跨平台解决方案
ZonyLrcToolsX:轻松获取完美歌词的跨平台解决方案 【免费下载链接】ZonyLrcToolsX ZonyLrcToolsX 是一个能够方便地下载歌词的小软件。 项目地址: https://gitcode.com/gh_mirrors/zo/ZonyLrcToolsX 你是否曾经为音乐播放器缺少歌词而烦恼?是否厌…...
在MacBook Pro上构建工业物联网数据采集:libmodbus实战指南
1. 为什么选择MacBook Pro作为工业物联网开发平台 工业物联网开发通常需要频繁的现场调试和设备对接,传统工控机笨重且不便携。MacBook Pro凭借其出色的性能表现和稳定的macOS系统,正在成为工程师们的新宠。我去年参与一个智慧农业项目时,就深…...
CDMA功率测量技术与Agilent 8960系统优化
1. CDMA功率测量技术背景与挑战在cdma2000移动通信系统中,精确的功率控制是实现高质量通信的核心技术之一。与GSM等采用固定功率等级的系统不同,CDMA要求移动台(MS)能够在80dB动态范围内精确调整发射功率。这种需求源于CDMA系统的自干扰特性——所有用户…...
eFuse 的核心作用
它触及了设备安全性的核心机制——eFuse。 简而言之:一台已经烧录(blown)了 eFuse 的设备,其安全机制与未烧录 eFuse 的设备有本质区别,你之前在非 eFuse 设备上成功的代码修改(强制 check_key 返回 0)很可能在烧录了 eFuse 的设备上无效。 以下是详细解释: eFuse 的…...
微通道液冷散热:六类强化结构深度解析
🎓作者简介:科技自媒体优质创作者 🌐个人主页:莱歌数字-CSDN博客 💌公众号:莱歌数字(B站同名) 📱个人微信:yanshanYH 211、985硕士,从业16年 从…...
知网AI率80%降到15%教程,比话降AI知网算法专精+售后保障!
知网AI率80%降到15%教程,比话降AI知网算法专精售后保障! 如果你是硕博毕业生、学校送知网检测、答辩前查出 AI 率 80%——这篇文章直接给你完整操作教程。从「拿到 80% 报告」到「学校送审通过」的完整路径,每一步该做什么、花多少时间、花多…...
掌握智能游戏存档管理:实现高效跨平台游戏进度迁移
掌握智能游戏存档管理:实现高效跨平台游戏进度迁移 【免费下载链接】XGP-save-extractor Python script to extract savefiles out of Xbox Game Pass for PC games 项目地址: https://gitcode.com/gh_mirrors/xg/XGP-save-extractor 你是否曾在Xbox Game Pa…...
