Atitit 返回http500返回码,以及自定义返回提示
目录
1.1. Header("HTTP/1.1 404 Not Found"); 可自定义 2
1.2. http_response_code 快速方便 2
1.3. 为了回答您关于区别的问题,我在php文档中找到了this comment(感谢steven): 3
2.1. response.setStatus(302); 4
header("HTTP/1.0 404 Not Found");
^ ^ ^
A B C
header(" ", false, 404);
^ ^ ^
C D B
http_response_code(404);
^
B
A: Defines HTTP header
B: Response code
C: Message
D: To replace previous header or not
(PHP 5 >= 5.4.0, PHP 7)
http_response_code — 获取/设置响应的 HTTP 状态码
-
-
- 说明 ¶
-
http_response_code ([ int $response_code ] ) : mixed
获取或者设置响应的 HTTP 状态码。
-
-
- 参数 ¶
-
response_code
可选的 response_code 会设置响应的状态码。
-
-
- 返回值 ¶
-
如果提供了 response_code,将返回先前的状态码。 如果未提供 response_code,会返回当前的状态码。 在 Web 服务器环境里,这些状态码的默认值都是 200。
如果在非 Web 服务器环境里调用(比如 CLI 应用里), 不提供 response_code 就会返回 FALSE 。 在非 Web 服务器环境里,提供 response_code 会返回 TRUE (仅仅在先前没有设置过状态码的时候)
-
- 为了回答您关于区别的问题,我在php文档中找到了this comment(感谢steven):
http_response_code基本上是编写http的一种速记方法
状态头,附加的好处是php将计算出一个合适的
通过将响应代码与
它维护的枚举中的值
php src/main/http_status_codes.h.注意这意味着您的响应
代码必须与php知道的响应代码匹配。你不能创建
您自己的响应代码使用此方法,但是您可以使用
头方法。
总之,http_response_code和header之间的区别
设置响应代码:
使用http_response_code将导致php匹配并应用硬编码到的原因短语列表中的原因短语
php源代码。
由于上面的第1点,如果使用http_response_code必须设置php知道的代码。你不能设置自己的自定义代码,
但是,如果使用
头方法。
我很好奇一些流行的框架是如何在标准响应中发送头的:
Symfony(和Laravel,通过继承)设置原始头:
//设置状态码,设置为重定向方式