首页 > 其他分享 >Protocol - Socket v.s. WebSocket

Protocol - Socket v.s. WebSocket

时间:2023-10-27 17:14:46浏览次数:34  
标签:协议 Protocol Socket TCP WebSocket 连接 客户端

总结

什么是socket?

我们经常把socket翻译为套接字,socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。

 

 

什么是WebSocket?

WebSocket是实现了浏览器与服务器的全双工通信协议,一个模拟Socket的应用层协议。

WebScoket是一种让客户端和服务器之间能进行全双工通信(full-duplex)的技术。它是HTML最新标准HTML5的一个协议规范,本质上是个基于TCP的协议,它通过HTTP/HTTPS协议发送一条特殊的请求进行握手后创建了一个TCP连接,此后浏览器/客户端和服务器之间便可随时随地以通过此连接来进行双向实时通信,且交换的数据包头信息量很小。

 

 

Socket v.s. WebSocket

他们两的关系就像Java和JavaScript,并非完全没有关系,只能说有点渊源。

Socket严格来说,其实并不是一个协议,而是为了方便开发者使用TCP或UDP协议而对TCP/IP协议进行封装出来的一组接口,是位于应用层和传输控制层之间的接口。通过Socket接口,我们可以更简单,更方便的使用TCP/IP协议。

 

Socket v.s. Http (Restful风格)

  • WebSocket 是一种双向通信协议,在建立连接后,WebSocket 服务器和 Browser/Client Agent 都能主动的向对方发送或接收数据,就像 Socket 一样;
  • WebSocket 需要类似 TCP 的客户端和服务器端通过握手连接,连接成功后才能相互通信。
  • WebSocket 是类似 Socket 的 TCP 长连接的通讯模式,一旦 WebSocket 连接建立后,后续数据都以帧序列的形式传输。在客户端断开 WebSocket 连接或 Server 端断掉连接前,不需要客户端和服务端重新发起连接请求。在海量并发及客户端与服务器交互负载流量大的情况下,极大的节省了网络带宽资源的消耗,有明显的性能优势,且客户端发送和接受消息是在同一个持久连接上发起,实时性优势明显

 

 

参考文献

————————————————
版权声明:本文为CSDN博主「wangfan741」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wangfan741/article/details/116466125

 

标签:协议,Protocol,Socket,TCP,WebSocket,连接,客户端
From: https://www.cnblogs.com/frankcui/p/17792778.html

相关文章

  • API - 几种API接口模式 - RESTful、WebSocket、GraphQL、gRPC、Webhook
    总结TODO.....当思考使用哪种API接口时,你将会面临一个重要的决策。RESTful、GraphQL、gRPC、WebSocket和Webhook是当前流行的几种API接口模式。在本文中,我们将介绍这些接口的特点、用途和比较,帮助你选择最适合你应用程序需求的接口。引言随着现代应用程序的复杂性和用户期望的......
  • 数据序列化协议 Protocol Buffers(Protobuf) 认知
    写在前面需要存大数据,同事推荐,了解一下理解不足小伙伴帮忙指正对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧——赫尔曼·黑塞《德米安》ProtocolBuf......
  • TCP Socket性能优化秘籍
    一、引言1.1、TCPSocket在网络通信中的重要性TCPSocket在网络通信中的重要性体现在其提供了可靠的数据传输、连接性、多路复用等特性,是实现各种网络应用的基础,同时具有广泛的兼容性。它的存在使得网络通信更加可靠、高效和方便。其重要性如下:可靠性:TCP(传输控制协议)是一种可......
  • Can't connect to local MySQL server through socket '/tmp/mysql.sock'
    Can'tconnecttolocalMySQLserverthroughsocket'/tmp/mysql.sock' 删除配置文件后重启servicemysql restart  root316191014:06?00:00:00/bin/sh/home/mysql/bin/mysqld_safe--datadir=/home/mysql/data--pid-file=/home/mysql/data/localhos......
  • Disconnected from the target VM, address: '127.0.0.1:56577', transport: 'socket'
    DisconnectedfromthetargetVM,address:'127.0.0.1:56577',transport:'socket'端口占用DisconnectedfromthetargetVM,address:'127.0.0.1:56577',transport:'socket'DisconnectedfromthetargetVM=与目标虚拟机断开连接。PS:......
  • 18.1 Socket 原生套接字抓包
    原生套接字抓包的实现原理依赖于Windows系统中提供的ioctlsocket函数,该函数可将指定的网卡设置为混杂模式,网卡混杂模式(PromiscuousMode)是常用于计算机网络抓包的一种模式,也称为监听模式。在混杂模式下,网卡可以收到经过主机的所有数据包,而非只接收它所对应的MAC地址的数据包。一......
  • 10月24日用socketserver模块TCP和UDP的服务器
    目录socketserver模块TCP协议的服务器以及客户端UDP协议的服务器以及客户端修改UDP修改版socketserver模块为什么要考虑这个模块呢?因为真实情况下不一定只有一个客户端连接,如果我使用socket模块就无法实现一个服务器连接多个客户端同时回复客户端的数据,下面先展示一下这个情况图......
  • TLS Handshake failed: tls: server selected unsupported protocol version 301
    2023/10/2321:04:55D:/Dev/sre/gormSQLServer/main.go:20[error]failedtoinitializedatabase,goterrorTLSHandshakefailed:tls:serverselectedunsupportedprotocolversion301TLSHandshakefailed:tls:serverselectedunsupportedprotocolversion30......
  • [转]linux ss 命令 (全称Socket Statistics套接字统计,是iproute2套件中的一个,可替代
    原文地址:linuxss命令-sparkdev-博客园ss是SocketStatistics的缩写。ss命令可以用来获取socket统计信息,它显示的内容和netstat类似。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快。当服务器的socket连接数量变得非常大......
  • 原始翎风CLIENT8位 (3) frmMain 下的 CSocket控件
    原始翎风CLIENT8位frmMain下的CSocket控件属性:在frmMain的FormCreate中g_ConnectionStep:=cnsLogin设置为登陆方式g_boSendLogin:=Falseg_boServerConnected:=FALSE根据读取的mir.ini文件给CSOCKET的ADDRESS,PORT赋值Socket.Address:=g_sServerAddr;CSocket.Port:......