ws协议与http协议的异同

2023-11-06

http协议(识别数据内容)与webSocket协议


同:建立在TCP之上,同http一样通过TCP来传输数据

不同:

HTTP协议为单向协议,即浏览器只能向服务器请求资源,服务器才能将数据传送给浏览器,而服务器不能主动向浏览器传递数据。分为长连接和短连接,短连接是每次http请求时都需要三次握手才能发送自己的请求,每个request对应一个response;长连接是短时间内保持连接,保持TCP不断开,指的是TCP连接。


WebSocket解决客户端发起多个http请求到服务器资源浏览器必须要经过长时间的轮询问题。

一种双向通信协议,在建立连接后,WebSocket服务器和Browser/UA都能主动的向对方发送或接收数据,就像Socket一样,不同的是WebSocket是一种建立在Web基础上的一种简单模拟Socket的协议;    

WebSocket需要通过握手连接,类似于TCP它也需要客户端和服务器端进行握手连接,连接成功后才能相互通信。

WebSocket在建立握手连接时,数据是通过http协议传输的,“GET/chat HTTP/1.1”,这里面用到的只是http协议一些简单的字段。但是在建立连接之后,真正的数据传输阶段是不需要http协议参与的。


TCP/IP协议(用来传输数据)


socket是对TCP/IP协议的封装,本身并不是协议,而是一个调用接口(API),通Socket,我们才能使用TCP/IP

四层,分别为应用层(TelnetFTPEmail等)、运输层(TCPUDP)、网络层(IPICMPIGMP等)和链路层(设备驱动程序)

三次握手完毕后,客户端与服务器才正式开始传送数据

四次挥手后断开连接

套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认

TCP:面向连接,通过三次握手建立连接,通讯完成时要拆除连接,只能端到端传输

UDP:无连接,可实现广播发送


TCP/IP通信数据流


下面是我们访问一个网页,各种协议在里面起的作用。


以上图例来自《图解HTTP》
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ws协议与http协议的异同 的相关文章

  • 【华为OD机试真题 Java】小组卡片最大数字(100%通过+全网最详细注释)

    前言 本专栏将持续更新华为OD机试题目 并进行详细的分析与解答 包含完整的代码实现 希望可以帮助到正在努力的你 关于OD机试流程 面经 面试指导等 如有任何疑问 欢迎联系我 wechat steven moda email nansun09
  • win10开始菜单打不开,使用startmenu.diagcab进行修复

    win10开始菜单打不开 使用startmenu diagcab进行修复 下载后打开运行startmenu diagcab 打开后 点击高级选项 勾选自动修复应用措施 接着点击下一步 运行修复后点击查看详细信息 查看打不开的原因 进行下一步
  • hk pic.net forum.php,HC-SR04 problem with pic18f24k22.

    2021 03 26 00 11 57 proestpa Hello I have a problem with HCSR04 ultrasonic distance sensor I wrote a code that works per
  • 记一次蓝屏的解决,错误代码IRQL_NOT_LESS_OR_EQUAL

    这两天不知为何 电脑总是正在运行时自动重启 今天忍无可忍 百度了一下解决方法 有方法说 我的电脑右键 属性 高级 启动和故障恢复 中的设置 系统失败 中取消勾选 自动重新启动 能解决问题 所以就先照做了 如下图 不设置还好 没想到一设置 重
  • 2021蒙城高考成绩查询,2021亳州高考成绩查询入口

    今年的高考已经和大家告一段落 想必考生和家长们现在比较关注的就是高考成绩查询了 下面出国留学网小编给大家分享 2021亳州高考成绩查询入口 仅供参考 希望帮助各位考生便捷查询高考成绩 祝大家考个好成绩 2021安徽高考成绩查询时间 2021
  • cmd命令安装python第三方库_Python如何安装第三方库

    Python如何安装第三方库 版权申明 非商业目的注明出处可自由转载 博文地址 https blog csdn net cdpxc article details 108808780 出自 cdpxc 注 笔者是在D盘直接安装了Anacon
  • VAE,变分

    1 Latent Variable Model 生成模型一般会生成多个种类的数据 比如说在手写数字生成中 我们总共有10个类别的数字要生成 这个时候latent variable model就是一个很好的选择 为什么呢 举例来说 我们很容易
  • 使用tika 判断文件类型

    判断文件类型一般可采用两种方式 后缀名判断 简单易操作 但无法准确判断类型 文件头信息判断 通常可以判断文件类型 但有些文件类型无法判断 如word和excel头信息的前几个字节是一样的 无法判断 Apache Tika 是什么 Apach
  • gru matlab实现,分别用CNN、GRU和LSTM实现时间序列预测(2019-04-06)

    卷积神经网络 CNN 长短期记忆网络 LSTM 以及门控单元网络 GRU 是最常见的一类算法 在kaggle比赛中经常被用来做预测和回归 今天 我们就抛砖引玉 做一个简单的教程 如何用这些网络预测时间序列 因为是做一个简单教程 所以本例子中
  • 【QT】判断本地语言

    QLocale ql switch ql language case QLocale Chinese 系统语言是中文 可以进行其他操作 break default break
  • 模块之间的耦合与内聚的七种类型

    文章目录 前言 按功能划分的四种模块类型 七种耦合 1 非直接耦合 2 数据耦合 3 标记耦合 4 控制耦合 5 外部耦合 6 公共耦合 7 内容耦合 七种内聚 1 偶然 巧合 内聚 2 逻辑内聚 3 时间内聚 4 通信内聚 5 顺序内聚
  • 常用 Git 命令清单

    常用 Git 命令清单 文章目录 常用 Git 命令清单 在当前目录新建一个Git代码库 新建一个目录 将其初始化为Git代码库 下载一个项目和它的整个代码历史 显示当前的Git配置 编辑Git配置文件 设置提交代码时的用户信息 添加指定文
  • 编码规范C/C++

    一 命名 1 类型名 使用首字母大写的驼峰命名法 如StudentGrade MyClass 命名由单词组合而成 其中每个单词以大写字母开头 不包含下划线 宏 常量 enum 结构中的成员命名全部大写 2 变量 语义上应该是一个名词或名词短
  • 大学计算机基础字母缩写大全,大学计算机基础缩写词.pdf

    大学计算机基础缩写词 1 ALU Arithmetic Logic Unit 算术逻辑单元 2 CPU Central Processing Unit 中央处理单元 3 CISC 技术 ComplexInstructionSetComput
  • windows10右下角网络图标不见,而且设置里面是灰色的

    打开任务管理器 把资源管理器右键重新启动
  • Variable used in lambda expression should be final or effectively final报错解决方案

    Variable used in lambda expression should be final or effectively final报错解决方案 问题背景 解决方案 Lyric 哪里都是你 问题背景 在使用forEach报错 Va
  • 比double精度更高的数据类型_数据类型

    两个重点 数据类型 变量 数据类型 Data Type 数据类型就是数据的类型 每种数据有自己的值和操作规则 C 有三大类语句类型 简单数据类型 结构化据类型 点 这一期只详细讲简单数据类型 另外两个类型的会分别单独做一期 简单数据类型 S
  • Faster Rcnn

    一 公用特征Feature Maps的获取 二 Region Proposal Network Feature Maps bs 1024 38 38 经过3 3卷积 然后分别经过两个1 1的卷积 通道数分别为18 36 18 9 2 代表每
  • JDBC-查询数据(封装工具类)

    使用封装工具类方式查询数据 1 封装注册 连接 关闭工具类 public class JdbcUtils 设置属性 驱动 private static String driver 连接 private static String url m
  • 算法课程设计--A*算法解决特定条件下的最短路径问题

    1 算法课设题目 LOL 峡谷地图最优路径规划 以下问题的计算 按照该地图的基本规则来进行在该地图中分布着各种形状不规则的障碍区域环境 整个地图模型 可以根据需求进行自行简化 问题一 在任意起点与终点之间 规划一条最短路径 问题二 当你拥有

随机推荐

  • 亚信科技AntDB数据库参与“国内首款”事务型性能测试工具开源发布会,树立金融技术风向标

    日前 在中国信息通信研究院和中国通信标准化协会大数据技术标准推进委员会共同举办的 国内首款金融数据库性能测试工具DataBench T开源发布会 上 亚信科技受邀进行了 亚信科技数据库测试之道 的主旨演讲 图1 中国信通院DataBench
  • 基于TensorFlow让机器生成赵雷曲风的歌词

    本文转载自公众号量化投资与机器学习 ZXL LHTZ JQXX 原文 致敬赵雷 基于TensorFlow让机器生成赵雷曲风的歌词 责编 王艺 投稿及采访请邮件wangyi csdn net 或 扫描文末二维码 我们基本上收集了赵雷所有唱过的
  • 狂神说Es

    在学习ElasticSearch之前 先简单了解一下Lucene Doug Cutting开发 是apache软件基金会4 jakarta项目组的一个子项目 是一个开放源代码的全文检索引擎工具包 不是一个完整的全文检索引擎 而是一个全文检索
  • MyBatis-Plus系列(一)--MyBatis-Plus集成Druid环境搭建

    一 简介 Mybatis Plus是一款 MyBatis 动态 sql 自动注入 crud 简化 增 删 改 查 操作中间件 启动加载 XML 配置时注入 mybatis 单表 动态 SQL 操作 为简化开发工作 提高生产率而生 Mybat
  • 大数据教育平台数仓实时计算实现 附安装包与脚本

    一 Spark Streaming Spark Streaming 是核心Spark API的扩展 可实现实时数据的可扩展 高吞吐量 容错处理 数据可以从许多来源 如Kafka Flume Kinesis 或TCP套接字 中获取 并可以使用
  • 模型训练评估——交叉验证法的介绍

    与留出法相似 将数据集D划分为k个子集同样存在多种划分方式 为减小因样本划分不同而引入的差别 k折交叉验证通常要随机使用不同的划分重复p次 最终的评估结果是这p次k折交叉验证结果的均值 例如常见的有 10次10折交叉验证 假定数据集D中包含
  • python opencv键盘监听

    目录 读取图片监听 opencv pyinput 监听小键盘 读取图片监听 for file in files a cv2 imread path file cv2 imshow a a k cv2 waitKey 10 0xFF if k
  • 292. Nim Game

    class Solution public bool canWinNim int n return n 4 0 my first solution if n 4 0 return false else return true
  • 新浪博客插入代码(块)及代码高亮…

    新浪博客不能插入代码是一件非常尴尬的事情 这里将介绍如何在新浪博客中加入代码块及其高亮的方法 所需工具 1 XAMPP数据创建软件 2 wordpress 与 codecolorer 3 CSDN博客 步骤 1 安装wordpress 与
  • pycharm IDE报错 ,记事本打开后出现卡顿,之后出现ide错误

    打开IDE之后进行编辑 点击setting出现页面无反应 右下角出现的提示 ide error occurred see detail submit display 点击进去之后 在点击这个display 类似重启IDE的命令 然后就可以继
  • 微服务架构超详细解析,写得太好了!

    本文将介绍微服务架构和相关的组件 介绍他们是什么以及为什么要使用微服务架构和这些组件 本文侧重于简明地表达微服务架构的全局图景 因此不会涉及具体如何使用组件等细节 为了防止不提供原网址的转载 特在这里加上原文链接 https www cnb
  • 什么是IPU?

    在图像识别的SOC中 有一个很重要的单元 IPU Image Processing Unit 图像处理单元 图像处理单元的目标是提供从图像输入 摄像头传感器 电视信号输入等 到显示设备 LCD显示屏 TV输出 外部图像处理单元等 端到端的数
  • 探索OLED拼接屏的特点及在莱山的场景化应用

    涞山oled拼接屏是一种高清晰度的显示屏 由多个oled屏幕拼接而成 它可以用于各种场合 如商业展示 广告宣传 会议演示等 涞山oled拼接屏具有以下特点 1 高清晰度 oled屏幕具有高对比度 高亮度 高色彩饱和度等特点 可以呈现出非常清
  • go-kit grpc调用及中间件封装

    存在问题 grpc 调用问题 通常我们向业务返回会定义如下的结构 code 20000 msg Success data 但是如果我们定义如下的proro grpc的返回值可以在客户端不能直接使用 还需要使用json进行解析 message
  • 计算机网络1:Tcp三次握手和四次挥手

    一 TCP传输的过程 三次握手 1 建立连接并确认连接 三次握手 过程 1 客户端向服务端发出连接请求SYN 1 seq x 等待服务端响应 状态由CLOSED转为SYN SENT 2 服务端做出响应ACK和连接信号SYN 1 seq y
  • linux在dockers安装rides教程

    在Docker中安装Rider是一项非常有用的技能 因为它可以让您在Linux操作系统上进行开发和调试 本文将介绍如何在Docker上安装Rider 步骤1 安装Docker 首先 您需要在Linux操作系统上安装Docker 您可以使用以
  • 清空文件夹下的SVN文件BAT脚本

    清空文件夹下的SVN文件BAT脚本 1 脚本功能 清空文件夹及其子文件下下的所有 svn文件 避免svn提交时冲突 2 脚本内容 echo on color 2f mode con cols 80 lines 25 REM echo 正在清
  • 智能合约相关设计

    1 运行环境 以太坊采用以太坊虚拟机作为智能合约的运行环境 以太坊虚拟机是一个隔离的轻量级虚拟机环境 运行在其中的智能合约代码无法访问本地网络 文件系统或其他进程 对同一个智能合约 查看什么是智能合约 来说 往往需要在多个以太坊虚拟机中同时
  • 详细实现最短路径(迪杰斯特拉算法)

    最短路径 说白了 就是图里从一个顶点到另一个顶点的最小权值之和 今天 小编带大家一起用迪杰斯特拉 Dijkstra 算法实现它吧 目录 一 实现原理 二 代码实现 一 思路 二 代码 一 实现原理 其实 在小编看来 迪杰斯特拉算法与普里姆算
  • ws协议与http协议的异同

    http协议 识别数据内容 与webSocket协议 同 建立在TCP之上 同http一样通过TCP来传输数据 不同 HTTP协议为单向协议 即浏览器只能向服务器请求资源 服务器才能将数据传送给浏览器 而服务器不能主动向浏览器传递数据 分为