HTTP协议和Socket的区别和联系

HTTP是基于TCP/IP的应用层协议,用于浏览器与服务器间的信息交换,采用请求-响应模式,无状态且通常为短连接。而Socket是TCP/IP协议的接口,允许程序创建和维护长连接,允许服务端主动推送消息。HTTP通过session/cookie来模拟有状态交互,Socket则直接支持双向通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • HTTP: 超文本传输协议,首先它是一个协议,并且是基于TCP/IP协议基础之上的应用层协议。TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,HTTP是应用层协议,主要解决如何包装数据。HTTP协议详细规定了浏览器与服务器之间相互通信的规则,是万维网交换信息的基础。HTTP是基于请求-响应形式并且是短连接,并且是无状态的协议。针对其无状态特性,在实际应用中又需要有状态的形式,因此一般会通过session/cookie技术来解决此问题。

  • Socket: Socket不属于协议范畴,而是一个调用接口(API),Socket是对TCP/IP协议的封装,通过调用Socket,才能使用TCP/IP协议。Socket连接是长连接,理论上客户端和服务器端一旦建立连接将不会主动断开此连接。Socket连接属于请求-响应形式,服务端可主动将消息推送给客户端。

  • 为什么在tcp基础上的http反而无状态?
    一个很好的比喻是: 就是假设每个人的通话声音都相同,电话又没有来电显示。那么电话之间当然是相互认识的(知道对方的电话号码),主动拨电话的人也知道那头是谁,但是接电话的不知道电话那头的人是谁。所以要有暗号。为了保证资源不被占用所以每个电话只能一问一答。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值