PHP 文件与 HTTP Header

在服务器执行的 PHP 代码,一般用于回应客户端的 HTTP 请求。一个最简单的 PHP 文件是这样的:

<?php
header('HTTP/1.1 200 OK');
echo 'hello world!'
?>

按照 HTTP 标准,一个 HTTP 消息一般分为两个部分:HTTP 头部(header)和 HTTP 正文(body);而且头部消息必须在正文消息之前输出。在 PHP 文件中,用 header 函数可以输出头部信息,而用 echo 命令可以输出正文消息;如果不使用 header 函数,在输出正文之前将输出默认的头部信息。因此,对于下面这个例子:

 
<?php
header('HTTP/1.1 200 OK');
echo 'hello world!'
?>

由于在 PHP 文件的最前面还有空行,PHP 将会把它作为正文输出,从而后面执行 header 函数时将会警告头部信息已经输出过。另外,有的文件使用 Unicode 编码,如果不去掉文件开始的 BOM 字符,也会导致这个问题。对于 PHP 文件最后面的空行,不会有什么问题,因为 PHP 会自动删除 ?> 后面的一个换行符。

顺便看看一些常见的 HTTP 代码,列表如下:

  • 200 OK
  • 201 Created
  • 400 Bad Request
  • 401 Unauthorized
  • 403 Forbidden
  • 404 Not Found
  • 405 Method Not Allowed
  • 415 Unsupported Media Type
  • 500 Internal Server Error

参考资料:
[1] PHP 手册:第一个 PHP 页面
[2] PHP 手册:header
[3] PHP 手册:echo
[4] Hypertext Transfer Protocol -- HTTP/1.1
[5] HTTP Header 详解
[6] Modify HTTP Headers (Examples)
[7] php闭合标签输出多余空行使xml页面显示错误
[8] HTTP状态码 - 维基百科

原文地址:https://www.cnblogs.com/zoho/p/2575092.html