PHP 500 响应代码(内部服务器错误)

500 Internal Server Error 可用于指示服务器端发生了问题,并且用户实际上没有做任何导致错误的事情。

服务器通常会自动交付此代码,但 Web 开发人员也可以选择故意发送错误,这在尝试解决各种可能失败的事情时特别有用。

例如,如果我们尝试写入文件,但突然文件不可写,我们可以选择记录事件以进行仔细检查,并使用 PHP 的 http_response_code 函数向用户发送 500 Internal Server Error。

纯文本格式的 500 响应如下所示:

HTTP/1.1 500 Internal Server Error

要在 PHP 中发送自定义 500 响应代码,请使用 http_response_code 函数:

http_response_code(500);
echo '<h1>500 Internal Server Error</h1>';

发送原始 500 响应

可以使用 PHP 的 header 函数发送原始 HTTP 标头,包括状态代码,但建议使用 http_response_code 代替。

如果你还想使用header函数,建议你先建立客户端在请求中使用的协议,因为在发送原始响应代码时必须包含它。

协议可以这样建立:

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;
}

现在,如果客户端使用的协议未知,则 HTTP/1.0 将用作后备。
我们可以根据需要轻松添加更多协议。
使用 http_response_code 的一个优点是我们不必担心保持此函数更新。

然后,发送原始响应代码:

header(set_protocol() . ' 500 Internal Server Error');
echo '<h1>500 Internal Server Error</h1>';
日期:2020-06-02 22:15:25 来源:oir作者:oir