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 header or not

 

    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_codeheader之间的区别
设置响应代码:
使用http_response_code将导致php匹配并应用硬编码到的原因短语列表中的原因短语
php源代码。
由于上面的第1点,如果使用http_response_code必须设置php知道的代码。你不能设置自己的自定义代码,
但是,如果使用
头方法。
我很好奇一些流行的框架是如何在标准响应中发送头的:
Symfony(和Laravel,通过继承)设置原始头:

 

  1. Java
  1.  

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

  1.  
    1. response.setStatus(302);
  2.  
  3.  

 

 

原文地址:https://www.cnblogs.com/attilax/p/15196997.html