【发布时间】:2009-11-21 11:23:52
【问题描述】:
在请求和响应的http事务中发生了哪种情况?
- 客户端(网络浏览器)打开连接并发送它的请求并且连接打开(保持活动状态)直到服务器接受并回答然后关闭连接?
- 客户端(网络浏览器)打开连接并发送它的请求,然后连接关闭,服务器接受并回答并重新连接并发送响应?
在 http1.0 和 http1.1 这个场景有什么不同?
【问题讨论】:
标签: http httpwebrequest connection browser
在请求和响应的http事务中发生了哪种情况?
在 http1.0 和 http1.1 这个场景有什么不同?
【问题讨论】:
标签: http httpwebrequest connection browser
服务器无法直接重新连接到客户端。因此,您的情况 #2 不太可能。
换句话说,在 WEB 世界中,客户端浏览器和 WEB 服务器之间的“事务”始终是“客户端浏览器发起的”。
当然,如果我们谈论的是通过 HTTP 进行的服务器到服务器通信,那就另当别论了:您可以在这里制定自己的规则,前提是您至少控制一个服务器; -)
关于 HTTP 1.0 和 HTTP 1.1 的区别,我不太了解。
【讨论】:
在 1.0 和 1,1 中,连接保持打开状态,直到发送响应。保持活力是指之后发生的事情。
在 HTTP 1.0 中,服务器在发送响应后关闭连接。除非客户端发送并且服务器理解 keep-alive 标头(这不是 HTTP 1.0 标准的一部分)
在 HTTP 1.1 中,连接在响应后保持打开状态,除非客户端发送 Connection: close 标头。
【讨论】:
场景是:
如果启用了保持活动,则在保持活动超时到期之前不会关闭连接。保持活动的想法是使用相同的 TCP 连接来发送/接收多个请求/响应。
持久连接 / Keep alive 是在 HTTP 1.1 规范中正式引入的。 keep-alive 没有正式记录在 HTTP 1.0 的规范中,但是,HTTP 1.0 的一些实现支持保持活动连接。
关于场景2:服务器从不发起与浏览器的连接,浏览器发起与服务器的连接,服务器使用相同的连接发回响应。
【讨论】: