HTTP、Socket、Web Socket的联系与区别

定义

1、TCP/IP协议栈主要分为四层:应用层、传输层、网络层、数据链路层;
2、IP协议:P是Internet Protocol(网际互连协议)的缩写,是TCP/IP体系中的网络层协议
3、TCP协议:传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议
4、UDP协议:Internet 协议集支持一个无连接的传输层通信协议,该协议称为用户数据报协议(UDP,User Datagram Protocol)。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。
5、Socket:Socket其实并不是一个协议,而是为了方便使用TCP/IP或UDP/IP而抽象出来的一层,是位于应用层和传输控制层之间的一组接口。
Socket连接即是所谓的长连接,理论上客户端和服务端一旦建立连接,则不会主动断掉;但是由于各种环境因素可能会是连接断开。
6、HTTP协议:HTTP(Hyper Text Transfer Protocol)<超文本传输协议>的缩写,是用于从WWW服务器传输超文本到本地浏览器的传输协议。HTTP是一个应用层协议,由请求和响应构成,是一个标准的个客户端和服务器模型。
HTTP连接就是所谓的短连接,及客户端向服务器发送一次请求,服务器端相应后连接即会断掉。HTTP连接是建立在Socket连接之上。在实际的网络栈中,Socket连接的确是HTTP连接的一部分。但是从HTTP协议看,它的连接一般是指它本身的那部分。
7、WebSocket协议:WebSocket是HTML5中的协议,是一个应用层协议。HTML5 Web Sockets规范定义了Web Sockets API,支持页面使用Web Socket协议与远程主机进行全双工的通信。它引入了WebSocket接口并且定义了一个全双工的通信通道,通过一个单一的套接字在Web上进行操作。HTML5 Web Sockets以最小的开销高效地提供了Web连接。相较于经常需要使用推送实时数据到客户端甚至通过维护两个HTTP连接来模拟全双工连接的旧的轮询或长轮询(Comet)来说,这就极大的减少了不必要的网络流量与延迟。

WebSocket与Socket的关系

Socket是传输控制层接口,WebSocket是应用层协议。
当两台主机通信时,必须通过Socket连接,Socket则利用TCP/IP协议建立TCP连接。TCP连接则更依靠于底层的IP协议,IP协议的连接则依赖于链路层等更低层次。
在这里插入图片描述

HTTP协议与Socket的关系

HTTP协议就像WebSocket一样,则是一个典型的应用层协议,所以HTTP协议与Socket的关系与WebSocket与Socket的关系是相同的。
WebSocket在建立握手时,数据是通过HTTP传输的。但是建立之后,在真正传输时候是不需要HTTP协议的。

WebSocket与HTTP的关系

在这里插入图片描述
相同点:
1、都是一样基于TCP/IP的,都是可靠性传输协议。
2、都是应用层协议。
不同点:
1、WebSocket是双向通信协议,模拟Socket协议,可以双向发送或接受信息。HTTP是单向的。
2、WebSocket是需要浏览器和服务器握手进行建立连接的。而http是浏览器发起向服务器的连接,服务器预先并不知道这个连接。
联系:
1、WebSocket在建立握手时,数据是通过HTTP传输的。但是建立之后,在真正传输时候是不需要HTTP协议的。

HTTP建立连接过程

1、客户机与服务器通过Socket建立网络连接。
2、建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
3、 服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
4、客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。

WebSocket连接过程

1、步骤1:客户端发起http请求,经过3次握手后,建立起TCP连接;http请求里存放WebSocket支持的版本号等信息,如:Upgrade、Connection、WebSocket-Version等;
2、步骤2:服务器收到客户端的握手请求后,同样采用HTTP协议回馈数据;
3、步骤3:客户端收到连接成功的消息后,开始借助于TCP传输信道进行全双工通信(此时使用的通信协议才是真正使用了WebSocket协议)。

参考:
[1]: https://www.cnblogs.com/aspirant/p/11334957.html
[2]: https://blog.csdn.net/yamaxifeng_132/article/details/83583497
[3]:https://www.pianshen.com/article/9065189198/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值