【问题标题】:Can I 'drop' a PHP request without replying?我可以在不回复的情况下“放弃”一个 PHP 请求吗?
【发布时间】:2010-10-01 18:47:52
【问题描述】:

我不完全确定这在 PHP 甚至 HTTP 协议中是否可行。是否可以在请求时接收 PHP 脚本以运行但脚本会断开连接?不回复?

希望我的问题有意义。

(我正在使用 Apache)

【问题讨论】:

  • 我可能会尝试睡眠的东西。有没有更正式的方式不需要任何资源?

标签: php http


【解决方案1】:

当你通过 Apache 服务 php 时,总会有一个 http 响应。调用 exit 只会停止 php 的处理——而不是停止 Apache。在您的情况下,正确的做法可能是发送 200(OK)以外的 http 响应代码。例如 404 或 500。检查 the specs 以找到适合您的情况。

你从 php 中发送一个 http 响应,使用:

<?php
  header("HTTP/1.0 404 Not Found");
  exit;

【讨论】:

    【解决方案2】:

    如果您根本不想发送任何数据,请在循环中使用睡眠。最终客户端会超时并关闭连接。

    【讨论】:

      【解决方案3】:

      您可以在脚本中使用exit()die() 来停止脚本执行,这样可以达到您的目的吗?

      【讨论】:

      • 这会导致 HTTP 回复吗?
      • 我希望它根本不回复,通过忘记连接来超时。睡觉并没有真正做到这一点,因为它仍然“在附近”,但要等到以后。
      【解决方案4】:

      您为什么要这样做?您确实应该发送某种 HTTP 错误代码吗?

      【讨论】:

        【解决方案5】:

        这取决于您使用的软件。例如,一旦连接关闭,Apache 就会终止任何脚本。

        【讨论】:

          猜你喜欢
          • 2016-09-01
          • 2013-03-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-29
          • 1970-01-01
          • 1970-01-01
          • 2021-12-27
          相关资源
          最近更新 更多