常见HTTP状态码(HTTP Status Code)

214 阅读4分钟

概述

每一个HTTP响应都会带有一个HTTP状态码,是用来表示HTTP服务器响应状态的代码。HTTP定义遵循一条规则:所有状态码的第一个数字代表了响应的状态。

  • 1XX:Informational(信息性状态码),表示接收的请求正在处理。
  • 2XX:Success(成功状态码),表示请求正常处理完毕。
  • 3XX:Redirection(重定向),表示需要进行附加操作以完成请求。
  • 4XX:Client Error(客户端错误状态码),表示服务器无法处理请求。
  • 5XX:Server Error(服务器错误状态码),服务器处理请求出错。

aHR0cHM6Ly9zdGF0aWMuaG93YXJkbGl1LmNuL0hUVFAtU3RhdHVzLUNvZGVzLnBuZw.png

1xx

这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。

2xx

这一类型的状态码,代表请求已成功被服务器接收、理解、并接受。

200 OK

表示从客户端发来的请求在服务端被正常处理了,请求所希望的响应头或数据体将随此响应返回。在响应报文内,随状态码一起返回的信息会因方法的不同而发生改变。

  • GET:对应的请求资源实体会作为响应返回。
  • HEAD:对应请求资源的实体首部不随报文主体作为响应返回,即响应中只返回首部,不返回实体的主体部分。
  • POST:响应的消息体中包含请求的结果。

201 Created

请求已经被实现,而且有一个新的资源已经依据请求的需要而建立,且其URI已经随Location头信息返回。假如需要的资源无法及时建立的话,应当返回202 Accepted

3xx

该状态码表示由于请求对应的资源存在着另一个URI,应使用GET方法定向获取请求的资源。

4xx

此类状态码用于客户端似乎出错的情况。4XX的响应结果表明客户端时发生错误的原因所在。这类的代码,基本上都是客户端请求有问题。

400 Bad Request

该状态码表示请求报文中存在语法错误。当错误发生时,需要修改请求的内容后再次发送请求。另外,浏览器会像200 OK一样对待该状态码。

401 Unauthorized

客户端试图未经授权访问受密码保护的页面。应答中会包含一个WWW-Authenticate头,浏览器据此显示用户名字/密码对话框,然后在填写合适的Authorization头后再次发出请求。另外若之前已进行过1次请求,则表示用户认证失败。

403 Forbidden

资源不可用。服务器理解客户的请求,但拒绝处理它。通常由于服务器上文件或目录的权限设置导致。服务器没有必要给出拒绝的详细理由,但如果想做说明的话,可以在实体的主体部分对原因进行描述,这样就能让用户看到。

404 Not Found

该状态码表示无法找到指定位置的资源。这也是一个常用的应答。除此之外,也可以在服务器端拒绝请求且不想说明理由时使用。

405 Method Not Allowed

请求方法(GETPOSTHEADDELETEPUTTRACE等)对指定的资源不适用。

5xx

5XX的响应结果表明服务器本身发生错误。这类的代码,基本上都是服务端的问题。

500 Internal Server Error

该状态码表明服务器端在执行请求时发生了错误。也有可能是Web应用存在的bug或某些临时的故障。一般来说,这个问题都会在服务器端的源代码出现错误时出现。

503 Service Unavailable

该状态码表明服务器暂时处于超负荷或正在进行停机维护,现在无法处理请求。


参考