【问题标题】:Handling web requests on server side在服务器端处理 Web 请求
【发布时间】:2010-10-25 12:17:57
【问题描述】:

情况:用户点击链接,服务器获取请求并开始处理。同时,用户点击另一个链接,服务器在处理第一个链接时获取新请求。发生什么了?在客户端,我们只看到来自第二个请求的网页,但是当接收到第二个请求时,来自第一个请求的进程是否在服务器上被杀死?它是由服务器管理还是由语言(Apache 或 PHP)管理?

【问题讨论】:

    标签: php apache http


    【解决方案1】:

    视情况而定。如果浏览器没有断开与服务器的连接,它绝对不知道客户端已经导航到其他地方。如果它确实断开了连接,则由 Web 服务器来选择检测它并中止处理线程。

    无论哪种情况,这都是 HTTP 无状态的本质。在这方面你不应该依赖任何东西。

    【讨论】:

      【解决方案2】:

      两个请求都得到处理(如果浏览器确实发送了第二个请求)。

      您只会看到第二页,但如果您查看 access_log,您肯定会注意到两个请求。

      这就是 HTTP 的工作原理。

      【讨论】:

        【解决方案3】:

        您可以使用ignore_user_abort() 告诉脚本在连接终止后继续(或不继续)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-05-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多