Http、WebSocket、Socket的区别

news/2024/5/18 14:09:04 标签: http, websocket, udp
http://www.w3.org/2000/svg" style="display: none;">

HTTP与WebSocket都是属于应用层的通信协议,都是基于 TCP 协议来传输数据的。
Socket不是一种通信协议、而是一组调用的接口(API),位于应用层与传输层的一个抽象层(不属于OSI模型里面的层),Socket对TCP/UDP做了一定的封装。
https://img-blog.csdnimg.cn/a63037a3869c40d7bec75e891b45e7c0.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6IO95oCC5bC96YeP5LiN5Yia,size_19,color_FFFFFF,t_70,g_se,x_16" alt="" />
图片来源:https://www.cnblogs.com/aspirant/p/11334957.html

  • HTTP 协议有一个缺陷:通信只能由客户端发起,做不到服务器主动向客户端推送信息。
  • WebSocket 协议它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。
  • 主机 A 的应用程序要能和主机 B 的应用程序通信,必须通过 Socket 建立连接,而建立 Socket 连接必须需要底层 TCP/IP 协议来建立 TCP 连接。建立 TCP 连接需要底层 IP 协议来寻址网络中的主机。我们知道网络层使用的 IP 协议可以帮助我们根据 IP 地址来找到目标主机,但是一台主机上可能运行着多个应用程序,如何才能与指定的应用程序通信就要通过 TCP 或 UPD 的地址也就是端口号来指定。这样就可以通过一个 Socket 实例唯一代表一个主机上的一个应用程序的通信链路了。服务端通过ServerSocket监听端口,客户端通过Socket向服务器端和对应的端口发送消息。

http://www.niftyadmin.cn/n/1728722.html

相关文章

File转成MultipartFile(base64转成MultipartFile)

文章以png为例 图片转base64可以参考:https://blog.csdn.net/qq_36138652/article/details/102664141 public class BASE64DecodedMultipartFile implements MultipartFile {private final byte[] imgContent;private final String header;public BASE64DecodedMultipartFile…

centos 卸载docker_Docker安装使用及配置阿里云镜像加速与卸载

一. Docker简介:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。docker组成:Client客户端Daemon守…

MySQL查看重复数据并且删除

注意:条件可以不写,结合实际情况. 1. 查看重复数据出现的次数 select 字段,count(0) as 出现次数 from 表名 where 条件 group by 字段 having count(字段)>1 2.对重复数据进行删除 delete from 表名 where 条件 字段 in ( select * from ( select 字段 from 表名 wher…

armbian安装图形桌面_云服务器 CentOS7 系统 安装图形化桌面(MATE)以及Ubuntu 系统图形桌面

云服务器 CentOS7 系统 安装图形化桌面环境MATE登录服务器,执行命令 yum groups install "MATE Desktop"安装 MATE Desktop。执行命令 yum groups install "X Window System"安装 X Window System。执行命令 systemctl set-default graphical.t…

输入一个数组,并且进行冒泡排序

思想 1.冒泡排序的基本思想 冒泡排序是交换排序中一种简单的排序方法。它的基本思想是对所有相邻记录的关键字值进行比效,如果是逆顺(a[j]>a[j1]),则将其交换,最终达到有序化; 其处理过程为&#xff1…

数字通信同步技术的matlab与fpga实现_音视频开发技术之同步原理详解及实现

1.音视频同步简单介绍对于一个播放器,一般来说,其基本构成均可划分为以下几部分:数据接收(网络/本地)->解复用->音视频解码->音视频同步->音视频输出。基本框架如下图所示:为什么需要音视频同步…

try中存在return,finally的执行顺序

try中执行完return的语句后,不返回,执行finally块,finally块执行结束后,返回到try块中,返回try块中最后return的值。 例子: public class Main {public static void main(String[] args) {System.out.prin…

java插入的和mysql显示的Date不一致

使用sql语句进行MySQL操作的时候,发现输入当前数据,数据库中存储的数据总比输入的要小8个小时,几经搜索找到了原因,原来是因为mybatis配置文件中时间设置的问题serverTimezone设置成了UTC 需更改为: spring.datasourc…