0


HTTP 会话结束后 TCP 连接发生了什么?
例如,从网络服务器加载静态网页后

谢谢

4

2 回答 2

1

HTTP 会话通常是指服务器保持与特定用户的关联,并且可能具有任意长度(例如,使用 cookie 作为关联令牌)。

因此,一个 HTTP 会话通常包含多个 TCP 会话。对于非持久 HTTP 连接,每个请求都有自己的 TCP 会话(并在之后关闭)。另一方面,对于持久的 HTTP 连接,可以在 TCP 会话中获取多个 HTTP 资源,并且任何一方都将在任何一方达到超时阈值时关闭它。

关于持久 HTTP 连接的 Wikipedia 文章(Keep-Alive:true)

于 2012-06-06T11:48:53.540 回答
0

一个 TCP 连接中可以有多个 HTTP 请求。因此,如果您将 HTTP 会话称为一组 HTTP 请求/响应,则 TCP 连接将被关闭。

在 TCP 级别,关闭端发送一个设置了 FIN 标志的数据包,另一端用 ACK 确认这一点,然后立即或最终执行自己的 FIN,第一个用 ACK 再次确认。也有可能使用 RST 而不是 FIN 标志放弃连接。发送第一个 FIN 的端口进入 TIME_WAIT 状态。这用于拒绝随后到达的数据包,否则会被误解为新连接的数据包。超时后,端口从 TIME_WAIT 状态变为 CLOSED 状态。

编辑:正常终止由 FIN 标志指示。

于 2012-06-05T10:15:25.643 回答