PHP:http_response_code 与 header 函数

使用 http_response_code 函数的主要好处是,我们可以发送 HTTP 响应代码,而不必考虑客户端使用的协议版本。
相反,如果我们使用 PHP 标头函数发送原始响应代码,我们将需要手动确定协议版本。

许多 PHP 应用程序会错误地发送原始 HTTP 标头响应代码,而没有正确确定客户端使用的协议。
这在极少数情况下会导致问题。

对协议进行硬编码,例如 HTTP/2.0 或者 HTTP/1.1 是不必要的,并且会增加出错的机会——相反,我们应该让 PHP 使用 http_response_code 函数自动确定协议。

另一个好处是,当从 PHP 手动发送标头时,我们可以最大程度地减少错误输入响应标头字段的风险。

要使用 PHP 发送 HTTP 响应代码,我们可以执行以下示例所示的操作:

http_response_code(200);
echo '<p>Hallo World!</p>';

使用 PHP 发送原始 HTTP 标头

如果我们仍想发送原始标头,请务必使用如下函数来确定客户端使用的 HTTP 协议版本:

function set_protocol() {
  $supported_protocols = array(
    'HTTP/2.0' => true,
    'HTTP/1.1' => true,
    'HTTP/1.0' => true,
  );
  $protocol = $_SERVER["SERVER_PROTOCOL"];
  if (!isset($supported_protocols["$protocol"])) {
    $protocol = 'HTTP/1.0';
  }
  return $protocol;
}
日期:2020-06-02 22:15:56 来源:oir作者:oir