我知道一个http请求首先进行3次握手以建立连接。随后是请求和响应。
如果将来的请求需要握手,则称为非持久连接。
服务器可以选择使连接保持活动状态,以便在超时值(永久)之前不需要握手。这称为持久连接。通过为每个请求不需要三向握手,可以节省所需的时间。
我的同事提到http支持持久性和非持久性。我的理解是-tcp建立了连接。因此,持久性由tcp层控制。我说的对吗?
可能不正确。 HTTP比TCP更高,HTTP 1.0完成传输某些数据流后将发送close()
。但是在HTTP 1.1中,控制器不会发送close()
,而是将keepalive / hearbeat发送到另一端进行实时播放。它由应用程序层控制,换句话说,由HTTP本身控制。
HTTP可以支持持久连接的一种方式称为服务器发送事件。
用于持久连接的HTTP的替代方法是WebSocket。 WebSocket是一种计算机通信协议,可通过单个TCP连接提供全双工通信通道。 WebSocket在TCP之上启用消息流。 WebSocket与HTTP不同。