Atitit 返回http500返回码,以及自定义返回提示 目录 1. 可以看到从php发送http响应代码的三种方法:1 1.1. Header,"HTTP/1.1 404 Not Found"

Atitit 返回http500返回码,以及自定义返回提示

目录

1. 可以看到从php发送http响应代码的三种方法: 1

1.1. Header("HTTP/1.1 404 Not Found"); 可自定义 2

1.2. http_response_code 快速方便 2

1.2.1. 说明 ¶ 2

1.2.2. 参数 ¶ 2

1.2.3. 返回值 ¶ 2

1.3. 为了回答您关于区别的问题,我在php文档中找到了this comment(感谢steven): 3

2. Java 3

2.1. response.setStatus(302); 4

  1. 可以看到从php发送http响应代码的三种方法:

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 headerornot

    1. Header("HTTP/1.1 404 Not Found");可自定义
    2. http_response_code快速方便

(PHP 5 >= 5.4.0, PHP 7)

http_response_code — 获取/设置响应的 HTTP 状态码

      1. 说明 ¶

http_response_code ([ int $response_code ] ) : mixed

获取或者设置响应的 HTTP 状态码。

      1. 参数 ¶

response_code

可选的 response_code 会设置响应的状态码。

      1. 返回值 ¶

如果提供了 response_code,将返回先前的状态码。 如果未提供 response_code,会返回当前的状态码。 在 Web 服务器环境里,这些状态码的默认值都是 200

如果在非 Web 服务器环境里调用(比如 CLI 应用里), 不提供 response_code 就会返回 FALSE 。 在非 Web 服务器环境里,提供 response_code 会返回 TRUE (仅仅在先前没有设置过状态码的时候)

    1. 为了回答您关于区别的问题,我在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,通过继承)设置原始头:

  1. Java

//设置状态码,设置为重定向方式

    1. response.setStatus(302);