概述
每一个HTTP响应都会带有一个HTTP状态码,是用来表示HTTP服务器响应状态的代码。HTTP定义遵循一条规则:所有状态码的第一个数字代表了响应的状态。
- 1XX:Informational(信息性状态码),表示接收的请求正在处理。
- 2XX:Success(成功状态码),表示请求正常处理完毕。
- 3XX:Redirection(重定向),表示需要进行附加操作以完成请求。
- 4XX:Client Error(客户端错误状态码),表示服务器无法处理请求。
- 5XX:Server Error(服务器错误状态码),服务器处理请求出错。
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
请求方法(GET、POST、HEAD、DELETE、PUT、TRACE等)对指定的资源不适用。
5xx
5XX的响应结果表明服务器本身发生错误。这类的代码,基本上都是服务端的问题。
500 Internal Server Error
该状态码表明服务器端在执行请求时发生了错误。也有可能是Web应用存在的bug或某些临时的故障。一般来说,这个问题都会在服务器端的源代码出现错误时出现。
503 Service Unavailable
该状态码表明服务器暂时处于超负荷或正在进行停机维护,现在无法处理请求。