与在php中设置响应状态有什么区别
header("HTTP/1.0 404 未找到");
和
header("状态:404 未找到");
从客户端的角度(也称为浏览器或 RESTful WS 的客户端实现)来看有什么区别。我知道第二个必须与 CGI 做一些事情。
最佳答案
HTTP/1.0 404 Not Found
是 HTTP 响应代码,它允许客户端确定请求是否成功。
Status: 404 Not Found
只是设置一个名为 Status
的额外 header 字段,其值为 404 Not Found
。它没有内在含义,就像设置 header('Foo: Bar')
一样。它可能对某人有意义,但它是 not officially specified what it should mean 。 HTTP 响应代码将是正常的 200 OK。
通过 FastCGI 运行 PHP 时似乎有一个特殊情况。显然,使用此方法调用 PHP 时无法直接设置 HTTP/
状态。相反,您必须设置这个非官方 header ,它将在发送回客户端之前转换为真正的 HTTP/
代码(显然这是 PHP 在通过 CGI 调用时如何与 Web 服务器通信的限制)。在所有其他情况下,它只会按原样发送(没有任何意义),真正的 HTTP 响应代码将为 200 OK。
这就是我可以从 description in the manual 收集到的信息至少,我从来没有用过这个。另外,如果你通过 CGI 运行 PHP,那你就疯了,所以希望在当今这个时代没有人需要它。 ;o)
关于php - 从 php 发送 HTTP 状态代码的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4029739/