从php发送HTTP状态代码的区别

时间:2010-10-27 03:21:12

标签: php web-services http

在php中设置响应状态有什么不同

标题(“HTTP / 1.0 404 Not Found”);

标题(“状态:404未找到”);

与客户端的观点有何不同(也就是浏览器或RESTful WS的客户端实现)。我明白第二个必须用CGI做点什么。

1 个答案:

答案 0 :(得分:4)

HTTP/1.0 404 Not Found HTTP响应代码,它允许客户端确定请求是否成功。

Status: 404 Not Found只需设置名为Status的额外标头字段,其值为404 Not Found。它没有内在意义,就像设置header('Foo: Bar')一样。这可能对某人意味着什么,但它是not officially specified what it should mean HTTP响应代码将是正常的200 OK。

通过FastCGI运行PHP时似乎有一种特殊情况。显然,使用此方法调用PHP时,无法直接设置HTTP/状态。相反,您必须设置此非官方标头,在将其发送回客户端之前将转换为真正的HTTP/代码(显然,当通过CGI调用PHP时,PHP可以如何与Web服务器通信)。在所有其他情况下,它只是按原样发送(没有任何意义),真正的HTTP响应代码将是200 OK。
这就是我至少从description in the manual收集的东西,我从来没有使用过这个。另外,如果你通过CGI运行PHP,你会感到疯狂,所以希望在这个时代没有人需要这个。 ; O)