打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
网络协议之(Http、Socket、WebSocket)

OSI模型

  • 应用层:各种应用层协议,Http、WebSocket、FTP、SMTP等

  • 表示层:信息的语法语义以及他们的关联,如加密解密、转换翻译、压缩解压缩

  • 会话层:不同机器上的用户之间建立及管理会话

  • 传输层:接受上一层的数据,在必要的时候把数据进行分割,并将这些数据提交给网络层,且保证这些数据段有效到达对端。TCP、UDP协议。

  • 网络层:控制子网的运行,如逻辑编址、分组传输、路由选择。IP协议。

  • 数据链路层:物理寻址,同时将原始比特流转变为逻辑传输线路。

  • 物理层:机械、电子、定时接口通信信道上的原始比特流传输。

Http协议

Http协议,超文本传输协议,web上一问一答的两台计算机之间遵循的通信规则。

  • 请求组成:请求行、请求头、请求空行、请求主体

  • 响应组成:响应状态行、响应头、响应空行、响应正文

Socket协议

Socket是为了方便开发者直接使用更底层协议(一般是TCP或UDP)而存在的一个抽象层。Socket实际上是对TCP/IP协议的封装,本身并不是协议,而是一个调用接口(API)。

Socket的出现只是使得程序员更方便地使用TCP/IP协议栈而已,是对TCP/IP协议的抽象,从而形成了我们知道的一些最基本的函数接口,比如create、listen、connect、accept、send、read和write。

主机A的应用程序要能和主机B的应用程序通信,必须通过Socket建立连接,而建立Socket连接必须需要底层TCP/IP协议来建立TCP连接。建立TCP连接需要底层IP协议来寻找网络中的主机。我们知道网络层使用IP协议可以帮助我们根据IP地址来找到目标主机,但是一台主机上可能运行着多个应用程序,如何才能与指定的应用程序通信就要通过TCP或UDP的地址也就是端口号来指定。这样就可以通过一个Socket实例唯一代表一个主机上的一个应用程序的通信链路了。

WebSocket协议

基于Http协议的扩展,支持长连接,用于建立客户端和服务器的双向通道。

而传统的轮询方式(即采用http协议不断发送请求)的缺点:浪费流量(http请求头比较大)、浪费资源(没有更新也要请求)、消耗服务器

CPU占用(没有信息也要接收请求)。

WebSocket是保证只要在服务端和客户端建立连接后任何一端发起消息,相互推送消息,效率也是极大的提高了,并且服务端和客户端之间的标头信息很小,可以降低服务端的资源浪费。

WebSocket、HTTP与TCP

Http、WebSocket等协议属于应用层协议,IP协议工作在网络层,TCP协议工作在传输层。HTTP、WebSocket等应用层协议,都是基于TCP协议来传输数据的。

对于WebSocket来说,它必须依赖Http协议进行一次握手,握手成功后,数据就直接从TCP通道传输,与Http无关了。。。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
webSocket和Socket之间的区别联系
1小时教你理解HTTP,TCP,UDP,Socket,WebSocket
深入浅出-iOS的TCP/IP协议族剖析&&Socket
Socket长连接和短连接的区别
 网络层、传输层学习(TCP/IP协议)
Java 网络编程总结(精华版)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服