HTTP常见状态码
# 梳理HTTP返回的状态码
# 2XX(sucess 成功状态码)
2XX响应的结果表明请求被正常处理了。
# 200 OK
表示从客户端发来的请求被服务器端正常处理了。
在响应报文内,随响应码一起返回的信息会因方法的不同而发生改变。比如,使用GET方法时,对应请求资源的实体会作为响应返回;而使用HEAD方法是,对应请求资源的实体首部不随报文主体作为响应返回(即在响应中只返回首部,不会返回实体的主体部分)
# 204 No Content
表示服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主题部分。另外,也不允许返回任何实体的主体。
一般在只需要从客户端往服务器发送消息,而对客户端不需要重新发送新消息内容的情况下使用。
# 206 Partial Content
表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求。
响应报文中包含由
Content-Range
指定范围的实体内容。
# 3XX(Redirection 重定向状态码)
# 301 Move Permanently
永久性重定向。表示请求的资源已被分配了新的URI,以后应使用资源现在所指的URI。
# 302 Found
临时性重定向。表示请求的资源已被分配了新的URI,希望用户(本次)能使用新的URI访问。
# 303 See Other
表示由于请求对应的资源存在着另外一个URI,应使用GET方法定向获取请求的资源。
# 304 Not Modified
表示所请求的资源未修改,服务器返回此状态码,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源。
# 307 Temporary Redirect
临时重定向。与302 Found类似,但不会从POST不变成GET。
# 4XX(Client Erro 客户端错误状态码)
4XX的响应结果表明是客户端发生的错误。
# 400 Bad Request
客户端请求的语法错误,服务器无法理解。
# 401 Unauthorized
请求要求用户的身份认证。
# 403 Forbidden
表明对请求资源的访问被服务器拒绝了。未获得文件系统的访问授权,访问权限出现某些问题(从未授权的发送源IP地址试图访问)等请求都可能是发生403的原因。
# 404 Not Found
表明服务器上无法找到请求的资源。除此之外,也可以在服务器端拒绝请求且不想说明理由时使用。
# 405 Method Not Allowed
表明客户端请求的方法虽然能被服务器识别,但服务器禁止使用该方法。
GET和HEAD方法,服务器应该总是允许客户端进行访问。此外,客户端可以通过OPTIONS方法查看服务器允许的方法:
Access-Control-Allow-Methods →GET,HEAD,PUT,PATCH,POST,DELETE
# 5XX(Server Erro 服务器错误状态码)
# 500 Internal Server Erro
表明服务器端在执行请求时发生了错误,也有可能是Web应用存在的bug或某些临时的故障。
# 502 Bad Gateway
表明扮演网关或代理角色的服务器,从上游服务器中接收到的响应式无效的。
502 错误通常不是客户端能够修复的,而是需要由途径的 Web 服务器或者代理服务器对其进行修复。
# 503 Service Unavailable
表明服务器暂时处于超负载或正在停机维护,现在无法处理请求。如果事先得知解除以上状况需要的时间,最好写入Retry-After首部字段再返回给客户端。