【问题标题】:which scenario in http transaction is occurred?http事务中发生了哪种情况?
【发布时间】:2009-11-21 11:23:52
【问题描述】:

在请求和响应的http事务中发生了哪种情况?

  1. 客户端(网络浏览器)打开连接并发送它的请求并且连接打开(保持活动状态)直到服务器接受并回答然后关闭连接?
  2. 客户端(网络浏览器)打开连接并发送它的请求,然后连接关闭,服务器接受并回答并重新连接并发送响应?

在 http1.0 和 http1.1 这个场景有什么不同?

【问题讨论】:

    标签: http httpwebrequest connection browser


    【解决方案1】:

    服务器无法直接重新连接到客户端。因此,您的情况 #2 不太可能。

    换句话说,在 WEB 世界中,客户端浏览器和 WEB 服务器之间的“事务”始终是“客户端浏览器发起的”。


    当然,如果我们谈论的是通过 HTTP 进行的服务器到服务器通信,那就另当别论了:您可以在这里制定自己的规则,前提是您至少控制一个服务器; -)


    关于 HTTP 1.0 和 HTTP 1.1 的区别,我不太了解。

    【讨论】:

      【解决方案2】:

      在 1.0 和 1,1 中,连接保持打开状态,直到发送响应。保持活力是指之后发生的事情。

      在 HTTP 1.0 中,服务器在发送响应后关闭连接。除非客户端发送并且服务器理解 keep-alive 标头(这不是 HTTP 1.0 标准的一部分)

      在 HTTP 1.1 中,连接在响应后保持打开状态,除非客户端发送 Connection: close 标头。

      Details

      【讨论】:

        【解决方案3】:

        场景是:

        1. 客户端(浏览器)打开与 Web 服务器的连接并发送 HTTP 请求
        2. 服务器接收请求并将响应发送回客户端(浏览器)

        如果启用了保持活动,则在保持活动超时到期之前不会关闭连接。保持活动的想法是使用相同的 TCP 连接来发送/接收多个请求/响应。

        持久连接 / Keep alive 是在 HTTP 1.1 规范中正式引入的。 keep-alive 没有正式记录在 HTTP 1.0 的规范中,但是,HTTP 1.0 的一些实现支持保持活动连接。

        关于场景2:服务器从不发起与浏览器的连接,浏览器发起与服务器的连接,服务器使用相同的连接发回响应。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2022-07-02
          • 2023-03-17
          • 2014-08-21
          • 2022-09-30
          • 1970-01-01
          • 1970-01-01
          • 2022-09-25
          相关资源
          最近更新 更多