WebSocket与Socket、TCP、HTTP的关系

news2024/9/22 19:41:23
目录:
1、名词解析;
2、WebSocket简介与原理;
3、WebSocket和Http的关系和异同点;
4、WebSocket与Socket的区别;
5、Socket和TCP/IP;
6、一个应用程序的通信链路;

1、基础名词解析:

(1)IP:网络层协议;(高速公路)

(2)TCP和UDP:传输层协议;(卡车)

(3)HTTP:应用层协议(货物);

HTTP(超文本传输协议)是建立在TCP协议之上的一种应用。HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。

(4)Socket:套接字(港口码头/车站):不是一个协议,是抽象层

TCP/IP网络的API。Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。

TCP协议简化一下,就只有三个核心功能:建立连接、发送数据以及接收数据;Socket核心功能也是这样。所以Socket编程,理解为对TCP协议的具体实现。

(5)Websocket:

同HTTP一样也是应用层的协议,但是它是一种双向通信协议,是建立在TCP之上的,解决了服务器与客户端全双工通信的问题,包含两部分:一部分是“握手”,一部分是“数据传输”。握手成功后,数据就直接从 TCP 通道传输,与 HTTP 无关了

(6)通讯方式:

单工:数据只能单向传送;

半双工:数据能双向传送但不能同时双向传送;

全双工:数据能够同时双向传送。

2、WebSocket简介与原理:

(1)WebSocket是HTML5中新协议,新API。实现多路复用,是全双工、双向、单套接字连接,在WebSocket协议下服务器和客户端可以同时发送信息。

(2)WebSocket同HTTP一样也是应用层协议,但是它是双向通信协议,建立在TCP之上。

3、WebSocket和Http的关系和异同点:

(1)每个WebSocket连接都始于一个HTTP请求;

具体来说,WebSocket协议在第一次握手连接时,通过HTTP协议在传送WebSocket支持的版本号,协议的字版本号,原始地址,主机地址等等一些列字段给服务器端.

(2)相同点:

(1)都是建立在TCP之上,通过TCP协议来传输数据。

(2)都是可靠性传输协议。

(3)都是应用层协议。

(3)不同点:

(1)WebSocket支持持久连接,HTTP不支持持久连接。

(2)WebSocket是双向通信协议,HTTP是单向协议,只能由客户端发起,做不到服务器主动向客户端推送信息。

4、WebSocket与Socket的区别:

(1)Socket:不是一个协议,Socket是应用层与TCP/IP协议族通信的中间软件抽象层;

Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面;

(2)而 WebSocket 则不同,它是一个完整的应用层协议,包含一套标准的 API 。

所以,从使用上来说,WebSocket 更易用,而 Socket 更灵活。

5、Socket和TCP/IP:

(1)Socket是对TCP/IP协议的封装,像创建Socket连接时,可以指定使用的传输层协议;

(2)Socket可以支持不同的传输层协议(TCP或UDP);

(3)当使用TCP协议进行连接时,该Socket连接就是一个TCP连接。

6一个应用程序的通信链路:

(1)主机 A 的应用程序要能和主机 B 的应用程序通信,必须通过 Socket 建立连接;

(2)而建立 Socket 连接必须需要底层 TCP/IP 协议来建立 TCP 连接。

(3)建立 TCP 连接需要底层 IP 协议来寻址网络中的主机。

我们知道网络层使用的 IP 协议可以帮助我们根据 IP 地址来找到目标主机,但是一台主机上可能运行着多个应用程序;

(4)如何才能与指定的应用程序通信就要通过 TCP 或 UPD 的地址也就是端口号来指定。

这样就可以通过一个 Socket 实例唯一代表一个主机上的一个应用程序的通信链路了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/392796.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

十三、Spring对事务的支持

1 事务概述 什么是事务 在一个业务流程当中,通常需要多条DML(insert delete update)语句共同联合才能完成,这多条DML语句必须同时成功,或者同时失败,这样才能保证数据的安全。多条DML要么同时成功&#xf…

Antlr4:使用grun命令,触发NoClassDefFoundError

1. 意外的发现 在学习使用grun命令时,从未遇到过错误 最近使用grun命令,却遇到了NoClassDefFoundError的错误,使得grun测试工具无法成功启动 错误复现: 使用antlr4命令编译Hello.g4文件,并为指定package(…

人工智能学习07--pytorch10--目标检测:RCNN、Faster RCNN

括号里都是弹幕大佬的高赞发言 1 前言 Two Stage检测过程分两步走 前景:需要检测的目标 背景:不感兴趣的 生成候选框:将感兴趣目标框选出来,但是没有进行分类 具体使用哪一种,根据项目需求 自定义数据集 自己写一…

CAS 与 ABA问题

本文通过学习:周阳老师-尚硅谷Java大厂面试题第二季 总结的CAS和ABA相关的笔记一、CAS1、CAS定义CAS Compare-And-Swap,它是CPU并发原语。比较当前工作内存中的值和主物理内存中的值,如果相同则执行规定操作,否者继续比较直到主内…

【MySQL】第18章_MySQL8其它新特性

第18章_MySQL8其它新特性 1. MySQL8新特性概述 MySQL从5.7版本直接跳跃发布了8.0版本,可见这是一个令人兴奋的里程碑版本。MySQL 8版本在功能上做了显著的改进与增强,开发者对MySQL的源代码进行了重构,最突出的一点是多MySQL Optimizer优化器…

gitHub远程库

创建远程仓库注册一个gutHub账户点击号,在点击New repository新建一个远程仓库仓库名一般跟本地库的名称一致public公共的开源private私有的不公开远程仓库操作创建远程仓库别名基本语法git remote -v : 查看当前所有远程地址别名git remote add 别名 远…

ABAP ALV和OOALV设置单元格颜色,编辑

首先给大家分享一篇博客: REUSE_ALV_GRID_DISPLAY_LVC-可编辑单元格 文章目录单元格编辑单元格/行-颜色效果展示**需求:**我是想实现某个单元格可根据数据来判断是否是可以进行编辑的或要添加一个什么样的颜色. 我们需要用到下面的三个结构 ALV 控制: 单元格的类型表:LVC_T_ST…

Nios II软件开发流程简介(含工程)

软件安装 Nios II Eclipse软件打不开 ​ 安装完成quartus后,想要打开Nios II Eclipse软件,点击软件后发现没有任何反应。 ​ 这时要到安装目录C:\intelFPGA_pro\20.3\nios2eds\bin下,打开readme文件。 ​ 按readme中的内容下载eclipse-cpp-…

VTK中如何 搜索 目标点 最近的点或者点集( vtkPointLocator )

背景: 在vtk使用过程中,我们有时要搜索点或者cell最近的 单元, 仔细看源码,有时无法判断其具体是什么样子,因而这里做了可视化处理,方便我们更深刻的理解 vtkPointLocator 类型函数的使用; 过程: 1.了解其继承关系是必要的: 2.开始探索该函数的一些效果: 我们会将原始数据…

vmware安装redhat enterprise linux server 9.1

vmware安装redhat enterprise linux server 9.11、安装系统1.1 镜像文件2、更新系统2.1 注册系统到redhat软件仓库2.2 更新系统1、安装系统 1.1 镜像文件 官网下载:https://developers.redhat.com/products/rhel/download 2、更新系统 2.1 注册系统到redhat软件…

【编写中】html5+go+websocket不到150行代码,实现一个在线实时聊天的功能

阮一峰websocket 相关参考 websocket 什么是websocket 在了解什么是websocket之前,我们下说一说http,因为HTTP我们太熟了。我们知道,HTTP是一种基于应用层的网络协议,往往都是一个请求,一个相应。websocket呢&#…

为啥用 时序数据库 TSDB

前言 其实我之前是不太了解时序数据库以及它相关的机制的,只是大概知晓它的用途。但因为公司的业务需求,我意外参与并主导了公司内部开源时序数据库influxdb的引擎改造,所以我也就顺理成章的成为时序数据库“从业者”。 造飞机的人需要时刻…

VMware vCenter Server的安装和使用

准备工作 首先去官网下载好VCenter Server,然后准备安装,我这里下载的是6.0对应的镜像为VMware-VIMSetup-all-6.0.0-2656757.iso 需要注意: 开始安装 和安装其他操作系统一样,把镜像放入光驱或解压缩,我这里是在…

Dropout Reduces Underfitting论文解读

Dropout 在欠拟合的应用Dropout Reduces Underfitting(2023.3.2)写在前面摘要一、简介二、重新审视过拟合和欠拟合三、Dropout如何减少欠拟合四、方法五、实验早期随机失活分析晚期随机失活(Late Dropout)六、下游任务七、相关工作…

【零代码工具推荐】Max Creation Graph (MCG) 可视化图形编程工具

从3dMax 2016开始新加入了一个很牛great的功能,也就是“MCG”全称是Max Creation Graph,MCG可以让用户使用全可视化节点工作流程来创建修改器,几何体工具插件,使用MCG,可以创建一个新的插件,没错是插件&…

【大数据实时数据同步】超级详细的生产环境OGG(GoldenGate)12.2实时异构同步Oracle数据部署方案(下)

系列文章目录 【大数据实时数据同步】超级详细的生产环境OGG(GoldenGate)12.2实时异构同步Oracle数据部署方案(上) 【大数据实时数据同步】超级详细的生产环境OGG(GoldenGate)12.2实时异构同步Oracle数据部署方案(中) 【大数据实时数据同步】超级详细的生产环境OGG(GoldenGate…

要点提炼|《数字中国建设整体布局规划》,看这一篇就够了!

《数字中国建设整体布局规划》/// 近日,中共中央、国务院印发了《数字中国建设整体布局规划》(以下简称“《规划》”),作为影响中国未来发展的重磅文件,被业界评价为“数字挂帅时代来临”。《数字中国建设整体布局规划…

【持续集成】Jenkins详细教程

文章目录一、jenkins是什么?二、CI/CD是什么?三、使用Jenkins进行PHP代码(单元)测试、打包。1.General2.源码管理3.构建触发器4.构建环境5.构建6.构建后操作7.其他相关配置四、进行jenkins project 构建五、构建结果说明六、jenkins权限管理最后&#xf…

【拼图】拼图游戏-微信小程序开发流程详解

还记得小时候玩过的经典拼图游戏吗,上小学时,在路边摊用买个玩具,是一个正方形盒子形状,里面装的是图片分割成的很多块,还差一块,怎么描述好呢,和魔方玩具差不多,有没有听说叫二维的…

【Leetcode——重排链表】

文章目录一、重排链表思路1.思路2.总结一、重排链表 对于这道题,有两种思路: 思路1. 1.使用一个线性表,存储链表中的每个节点,然后按照题目的条件,来链接线性表的各个节点即可。 使用左下标和右下标来定位线性表中的…