在这篇文章中,我将总结大约 22 个最常用的 HTTP 状态代码。我经常用谷歌搜索一些 HTTP 状态代码,所以我认为创建一个备忘录来记录最常用的状态代码。
将从四个方面介绍:
- 成功回应
- 重定向消息
- 客户端错误响应
- 服务器错误响应
目录
[TOC]
成功回应
200 OK
请求已成功。成功的意义取决于HTTP方法:
GET:已获取资源,并在消息体中传输。
HEAD:表示头包含在响应中,没有任何消息体。
PUT或POST:描述操作结果的资源在消息体中传输。
TRACE:消息正文包含服务器接收到的请求消息。
201 Created
请求已成功,因此创建了新资源。这通常是在POST请求或一些PUT请求之后发送的响应。
204 No Content(无内容)
没有为此请求发送内容,但头部可能有用。用户代理可以使用新的头更新其为此资源的缓存头。
重定向消息
301 Moved Permanently(永久更改)
请求的资源的URL已被永久更改。新的URL在响应中给出。
302 Found(发现)
此响应代码表示请求的资源的URI已临时更改。将来可能会对URI进行进一步的更改。因此,客户端应该在将来的请求中使用相同的URI。
307 Temporary Redirect(临时重定向)
服务器发送此响应以指示客户机使用先前请求中使用的相同方法从另一个URI获取请求的资源。这与302 Found HTTP响应代码具有相同的语义,只是用户代理不能更改所使用的HTTP方法:如果在第一个请求中使用了POST,则在第二个请求中必须使用POST。
308 Permanent Redirect(永久重定向)
这意味着资源现在永久地位于另一个URI,由Location:HTTP响应头指定。这与HTTP响应代码的语义相同,只是用户代理不能更改使用的HTTP方法:如果在第一个请求中使用了POST,则在第二个请求中必须使用POST。
客户端错误响应
400 Bad Request(错误请求)
由于无效语法,服务器无法理解该请求。
401 Unauthorized(未授权)
虽然HTTP标准指定“unauthorized”,但从语义上讲,这个响应意味着“unauthenticated”。也就是说,客户机必须对自己进行身份验证才能获得请求的响应。
403 Forbidden(禁止)
客户端对内容没有访问权限;也就是说,它是未经授权的,因此服务器拒绝提供请求的资源。与401不同的是,服务器知道客户机的身份。
404 Not Found(未找到)
服务器找不到请求的资源。在浏览器中,这意味着无法识别URL。在API中,这也可能意味着端点有效,但资源本身不存在。服务器也可以发送此响应而不是403,以向未经授权的客户端隐藏资源的存在。这个响应代码可能是最常见的一个,因为它经常出现在web上。
405 Method Not Allowed(方法不允许)
服务器知道请求方法,但该方法已被禁用,无法使用。例如,API可能禁止删除或禁用资源。两个必需的方法GET和HEAD决不能被禁用,也不应返回此错误代码。
408 Request Timeout(请求超时)
此响应由某些服务器在空闲连接上发送,即使客户端以前没有任何请求。这意味着服务器要关闭这个未使用的连接。
413 Payload Too Large(负载过大)
请求实体大于服务器定义的限制;服务器可能会关闭连接或在标头字段后返回重试。
414 URI Too Long(URI太长)
客户端请求的URI比服务器愿意解释的URI长。
415 Unsupported Media Type(不支持的媒体类型)
服务器不支持所请求数据的媒体格式,因此服务器拒绝该请求。
422 Unprocessable Entity(无法处理的实体)
请求格式正确,但由于语义错误而无法遵循。
429 Too Many Requests(请求过多)
用户在给定的时间内发送了太多请求(“速率限制”)。
服务器错误响应
500 Internal Server Error(内部服务器错误)
服务器遇到了不知道如何处理的情况。
502 Bad Gateway(错误的网关)
此错误响应意味着服务器在作为网关获取处理请求所需的响应时,得到了无效响应。
503 Service Unavailable(服务不可用)
服务器尚未准备好处理请求。常见原因是服务器因维护而停机或过载。请注意,与此响应一起,应该发送一个解释问题的用户友好页面。
504 Gateway Timeout(网关超时)
当服务器充当网关并且无法及时获得响应时,会给出此错误响应。