PHP输出http状态码以及常用状态码

PHP输出http状态码以及常用状态码

100-199 用于指定客户端应相应的某些动作。 
200-299 用于表示请求成功 理解和接受。 
300-399 用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息。 
400-499 用于指出客户端的错误。 
500-599 用于支持服务器错误。 
[Informational 1xx] 信息化
100="Continue" 继续:如果服务器收到头信息中带有100-continue的请求,这是指客户端询问是否可以在后续的请求中发送附件。在这种情况下,服务器用100(SC_CONTINUE)允许客户端继续或用417 (Expectation Failed)告诉客户端不同意接受附件。这个状态码是 HTTP 1.1中新加入的。 
101="Switching Protocols" 交换协议:服务器理解并愿意遵守客户的要求,通过升级消息头字段,改变在此连接使用的应用协议。
[Successful 2xx] 成功
>>>200="OK" 成功
201="Created" 创建:请求已经完成,导致创建一个新的资源。应在定位头信息中给出它的URL。
202="Accepted" 接受:处理请求已被接受,但处理还未完成。
203="Non-Authoritative Information" 非授权信息
>>>204="No Content" 没有内容:服务器已经完成请求,但没有返回任何内容。
205="Reset Content" 重置内容:该服务器已完成该请求,该用户代理应重置引起该请求的文档视图,用于强迫浏览器清除表单域。这是 HTTP 1.1中新加入的。 
206="Partial Content" 部分内容:在服务器完成了一个包含Range头信息的局部请求时被发送的
[Redirection 3xx] 重定向
300="Multiple Choices" 多种选择:表示被请求的文档可以在多个地方找到,并将在返回的文档中列出来。如果服务器有首选设置,首选项将会被列于定位响应头信息中。 
>>>301="Moved Permanently" 永久移动:所请求的资源被分配一个新的永久性URI并且未来的任何引用这个资源应该使用这个返回的URI,浏览器会自动连接到新的URL。 注意:当自动重定向一个POST请求收到一个301状态码,一些现有的HTTP / 1.0用户代理将错误地改变成一个GET请求
>>>302="Found" 发现:请求的资源暂时驻留在临时的URI。与301有些类似,只是定位头信息中所给的URL应被理解为临时交换地址而不是永久的。注意:在 HTTP 1.0中,消息是临时移动(Moved Temporarily)的而不是被发现
303="See Other" 查看其它:对该请求的响应可以在一个不同的URI,应使用该资源的GET方法检索。和 301、302 相似,只是如果最初的请求是POST,那么新文档(在定位头信息中给出)要用 GET 找回。这个状态码是新加入 HTTP 1.1中的。
>>>304="Not Modified" 没有修改:如果客户有条件执行GET请求,允许访问,但是文件没有被修改,服务器应该回应这个状态码。
305="Use Proxy" 使用代理:必须通过代理访问所请求的资源的位置字段。新加入 HTTP 1.1中。
306="(Unused)" (未使用)306状态代码中使用之前版本的规范,不再使用,代码是保留的
307="Temporary Redirect" 临时重定向:所请求的资源暂时驻留在一个不同的URI。浏览器处理307状态的规则与302相同。307状态被加入到 HTTP 1.1中是由于许多浏览器在收到302响应时即使是原始消息为POST的情况下仍然执行了错误的转向。只有在收到303响应时才假定浏览器会在POST请求时重定向。添加这个新的状态码的目的很明确:在响应为303时按照GET和POST请求转向;而在307响应时则按照GET请求转向而不是POST请求。
[Client Error 4xx] 客户端错误
>>>400="Bad Request" 服务器不理解请求的语法。
>>>401="Unauthorized" 未经授权:请求需要进行用户身份验证,如果该请求已包含授权证书,则401响应表示已拒绝为凭据。这个响应必须包含一个WWW-Authenticate的授权信息头。
402="Payment Required" 支付所需:这段代码保留以供将来使用。
>>>403="Forbidden" 禁止:服务器理解的请求,但拒绝履行它。
>>>404="Not Found" 未找到
405="Method Not Allowed" 不允许的方法:在请求行中指定的方法是不允许的请求URI标识的资源。指出请求方法(GET, POST, HEAD, PUT, DELETE, 等)对某些特定的资源不允许使用。
406="Not Acceptable" 不可接受:表示请求资源的MIME类型与客户端中Accept头信息中指定的类型不一致。
407="Proxy Authentication Required" 代理服务器身份验证:此代码类似于401(未经授权),但表示客户端必须首先对其进行身份验证。
408="Request Timeout" 请求超时:在服务器准备等待的时间内,客户端没有产生一个请求。新加入 HTTP 1.1中的。 
409="Conflict" 冲突:由于与资源的当前状态发生冲突,无法完成该请求。该状态通常与PUT请求一同使用,409状态常被用于试图上传版本不正确的文件时。该状态码是新加入 HTTP 1.1中的。 
>>>410="Gone" 不见了:所请求的资源不再是可用的服务器,也没有转发地址。告诉客户端所请求的文档已经不存在并且没有更新的地址。410状态不同于404,410是在指导文档已被移走的情况下使用,而404则用于未知原因的无法访问。该状态码是新加入 HTTP 1.1中的。
411="Length Required" 长度必需:服务器拒绝接受请求没有定义内容长度。表示服务器不能处理请求(假设为带有附件的POST请求),除非客户端发送Content-Length头信息指出发送给服务器的数据的大小。该状态是新加入 HTTP 1.1的。 
412="Precondition Failed" 前提条件失败:在一个或多个请求头字段在服务器上进行测试时,在一个或多个请求头域中给出的前提条件。指出请求头信息中的某些先决条件是错误的。该状态是新加入 HTTP 1.1的。 
413="Request Entity Too Large" 请求实体太大:告诉客户端现在所请求的文档比服务器现在想要处理的要大。如果服务器认为能够过一段时间处理,则会包含一个Retry-After的响应头信息。该状态是新加入 HTTP 1.1的。 
414="Request-URI Too Long" 请求URI太长:状态用于在URI过长的情况时。这里所指的“URI”是指URL中主机、域名及端口号之后的内容。新加入 HTTP 1.1的。 
415="Unsupported Media Type" 不支持的媒体类型:请求所带的附件的格式类型服务器不知道如何处理。该状态是新加入 HTTP 1.1的。 
416="Requested Range Not Satisfiable" 请求范围不符合:表示客户端包含了一个服务器无法满足的Range头信息的请求。该状态是新加入 HTTP 1.1的。
417="Expectation Failed" 期望失败:如果服务器得到一个带有100-continue值的Expect请求头信息,这是指客户端正在询问是否可以在后面的请求中发送附件。在这种情况下,服务器也会用该状态(417)告诉浏览器服务器不接收该附件或用100 状态告诉客户端可以继续发送附件。该状态是新加入 HTTP 1.1的。
[Server Error 5xx] 服务器错误
>>>500="Internal Server Error" 内部服务器错误
>>>501="Not Implemented" 无法执行:服务器不支持完成请求所需的功能。告诉客户端服务器不支持请求中要求的功能。例如,客户端执行了如PUT这样的服务器并不支持的命令。 
>>>502="Bad Gateway" 错误的网关:服务器作为网关或代理,从上游服务器收到无效响应在试图满足访问请求。该状态指出接收服务器接收到远端服务器的错误响应。 
>>>503="Service Unavailable" 服务不可用:服务器目前无法处理请求由于暂时过载或服务器的维护。一些服务器可能希望 简单地拒绝连接。例如,如果某些线程或数据库连接池已经没有空闲则服务器应返回这个头信息。服务器可提供一个Retry-After头信息告诉客户端什么时候可以再试一次。 
504="Gateway Timeout" 网关超时:它指出接收服务器没有从远端服务器得到及时的响应。该状态是新加入 HTTP 1.1的。 
505="HTTP Version Not Supported" HTTP版本不支持:服务器不支持,或者拒绝支持的HTTP协议的版本,是在请求消息中使用。该状态是新加入 HTTP 1.1的。
简洁版:
成功2XX 成功处理了请求的状态码。

  • 200 服务器已成功处理了请求并提供了请求的网页。
  • 204 服务器成功处理了请求,但没有返回任何内容。 

重定向3XX 每次请求中使用重定向不要超过 5 次。

  • 301 请求的网页已永久移动到新位置。当URLs发生变化时,使用301代码。搜索引擎索引中保存新的URL。
  • 302 请求的网页临时移动到新位置。搜索引擎索引中保存原来的URL。
  • 304 如果网页自请求者上次请求后没有更新,则用304代码告诉搜索引擎机器人,可节省带宽和开销。

客户端错误4XX 表示请求可能出错,妨碍了服务器的处理。

  • 400 服务器不理解请求的语法。
  • 403 服务器拒绝请求。
  • 404 服务器找不到请求的网页。服务器上不存在的网页经常会返回此代码。
  • 410 请求的资源永久删除后,服务器返回此响应。该代码与 404(未找到)代码相似,

但在资源以前存在而现在不存在的情况下,有时用来替代404 代码。如果资源已永久删除,应当使用 301 指定资源的新位置。
服务器错误5XX 表示服务器在处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错。

  • 500 服务器遇到错误,无法完成请求。
  • 503 服务器目前无法使用(由于超载或停机维护)。通常,这只是暂时状态。

详细分解:
2XX 成功
200 正常;请求已完成。
201 正常;紧接 POST 命令。
202 正常;已接受用于处理,但处理尚未完成。
203 正常;部分信息 — 返回的信息只是一部分。
204 正常;无响应 — 已接收请求,但不存在要回送的信息。
3XX 重定向
301 已移动 — 请求的数据具有新的位置且更改是永久的。
302 已找到 — 请求的数据临时具有不同 URI。
303 请参阅其它 — 可在另一 URI 下找到对请求的响应,且应使用 GET 方法检索此响应。
304 未修改 — 未按预期修改文档。
305 使用代理 — 必须通过位置字段中提供的代理来访问请求的资源。
306 未使用 — 不再使用;保留此代码以便将来使用。
4XX 客户机中出现的错误
400 错误请求 — 请求中有语法问题,或不能满足请求。
401 未授权 — 未授权客户机访问数据。
402 需要付款 — 表示计费系统已有效。
403 禁止 — 即使有授权也不需要访问。
404 找不到 — 服务器找不到给定的资源;文档不存在。
407 代理认证请求 — 客户机首先必须使用代理认证自身。
415 介质类型不受支持 — 服务器拒绝服务请求,因为不支持请求实体的格式。
5XX 服务器中出现的错误
500 内部错误 — 因为意外情况,服务器不能完成请求。
501 未执行 — 服务器不支持请求的工具。
502 错误网关 — 服务器接收到来自上游服务器的无效响应。
503 无法获得服务 — 由于临时过载或维护,服务器无法处理请求。
504 Gateway Timeout
作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器(URI标识出的服务器,例如HTTP、FTP、LDAP)或者辅助服务器(例如DNS)收到响应。
注意:某些代理服务器在DNS查询超时时会返回400或者500错误
505 HTTP Version Not Supported
服务器不支持,或者拒绝支持在请求中使用的 HTTP 版本。这暗示着服务器不能或不愿使用与客户端相同的版本。响应中应当包含一个描述了为何版本不被支持以及服务器支持哪些协议的实体。
506 Variant Also Negotiates
由《透明内容协商协议》(RFC 2295)扩展,代表服务器存在内部配置错误:被请求的协商变元资源被配置为在透明内容协商中使用自己,因此在一个协商处理中不是一个合适的重点。
507 Insufficient Storage
服务器无法存储完成请求所必须的内容。这个状况被认为是临时的。WebDAV (RFC 4918)
508 Loop Detected
服务器发现请求中出现一个无穷循环
509 Bandwidth Limit Exceeded
服务器达到带宽限制。这不是一个官方的状态码,但是仍被广泛使用。
510 Not Extended
获取资源所需要的策略并没有没满足。(RFC 2774)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 PHP 中,您可以使用 header 函数来修改 HTTP 状态码。 例如,要将 HTTP 状态码设置为 404(找不到),您可以使用以下代码: ``` header("HTTP/1.1 404 Not Found"); ``` 请注意,在使用 header 函数之前,不能输出任何内容到浏览器。否则,将会收到“头信息已发送”的错误消息。 您还可以使用 http_response_code 函数来修改 HTTP 状态码。例如,要将 HTTP 状态码设置为 404,您可以使用以下代码: ``` http_response_code(404); ``` 请注意,http_response_code 函数是 PHP 5.4 版本中引入的。如果您使用的是旧版本的 PHP,可能需要使用 header 函数来修改 HTTP 状态码。 希望这些信息对您有帮助! ### 回答2: 在PHP中,我们可以使用header()函数来修改HTTP状态码。该函数用于设置响应头信息,包括状态码,内容类型和其他相关信息。 要更改HTTP状态码,我们只需在调用header()函数之前设置一个新的状态码状态码是一个数字,表示服务器对请求的处理结果。 例如,如果我们想将状态码修改为404 Not Found(找不到页面),我们可以使用以下代码: ``` header("HTTP/1.1 404 Not Found"); ``` 同样地,我们也可以修改其他的HTTP状态码,如200 OK(请求成功)、301 Moved Permanently(永久重定向)、500 Internal Server Error(服务器内部错误)等等。 需要注意的是,在调用header()函数之前不能有任何输出,包括空格和换行符。否则,会导致header()函数无法修改状态码。 除了修改状态码,我们还可以通过header()函数设置其他的header字段,例如内容类型、缓存控制、重定向等等。 总之,通过在PHP中调用header()函数,我们可以轻松地修改HTTP状态码,并且可以根据实际情况进行适当的设置,以便提供正确的响应给客户端。 ### 回答3: 在PHP中,可以通过header()函数来修改HTTP状态码。header()函数用于向浏览器发送原始的HTTP头。我们可以使用header()函数来设置HTTP响应的状态码,从而实现修改状态码的效果。 例如,如果我们想要设置HTTP响应的状态码为404(页面未找到),可以使用以下代码: ``` header("HTTP/1.1 404 Not Found"); ``` 同样地,我们可以通过header()函数设置其他的HTTP状态码,例如: ``` header("HTTP/1.1 200 OK"); // 设置状态码为200(请求成功) header("HTTP/1.1 301 Moved Permanently"); // 设置状态码为301(永久移动) header("HTTP/1.1 500 Internal Server Error"); // 设置状态码为500(服务器内部错误) ``` 值得注意的是,在使用header()函数设置HTTP状态码时,需要在header()函数之前确保没有向浏览器输出任何内容,否则会导致header()函数失效。因此,一般建议将header()函数放在PHP脚本的开头部分。 当修改了HTTP状态码后,浏览器会根据所设置的状态码来处理相应的页面跳转、缓存等行为。请根据需要灵活使用header()函数来修改HTTP状态码,以实现自己的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值