0
点赞
收藏
分享

微信扫一扫

tcp/ip、http和socket区别

芒果六斤半 2022-03-30 阅读 46
tcp/iphttps

tcp/ip、http和socket区别

首先要知道在网络结构中我们一直说的分层:http协议位于应用层,tcp协议位于传输层,ip协议位于网络层,它们三个层级依次递减。而socket 是对TCP/IP 协议的封装,所以socket 是比 http 还底层的接口。

在这里插入图片描述

https://www.cnblogs.com/aspirant/p/11334957.html

socket和http的区别:
Http协议:简单的对象访问协议,对应于应用层。Http协议是基于TCP链接的。
tcp协议:对应于传输层
ip协议:对应与网络层
TCP/IP是传输层协议,主要解决数据如何在网络中传输;而Http是应用层协议,主要解决如何包装数据。

http1.1和2.0 最大的区别是二进制框架层。
TCP是数据的介质,Socket是TCP的介质。

Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。

Http连接:http连接就是所谓的短连接,及客户端向服务器发送一次请求,服务器端相应后连接即会断掉。

socket连接:socket连接及时所谓的长连接,理论上客户端和服务端一旦建立连接,则不会主动断掉;但是由于各种环境因素可能会是连接断开,比如说:服务器端或客户端主机down了,网络故障,或者两者之间长时间没有数据传输,网络防火墙可能会断开该链接已释放网络资源。所以当一个socket连接中没有数据的传输,那么为了位置连续的连接需要发送心跳消息,具体心跳消息格式是开发者自己定义的。

1.HTTP的长连接一般就只能坚持一分钟而已,而且是浏览器决定的,你的页面很难控制这个行为。
Socket连接就可以维持很久,几天、数月都有可能,只要网络不断、程序不结束,而且是可以编程灵活控制的。
2.HTTP连接是建立在Socket连接之上。在实际的网络栈中,Socket连接的确是HTTP连接的一部分。但是从HTTP协议看,它的连接一般是指它本身的那部分。

举报

相关推荐

0 条评论