HTTP
HTTP 状态码
1xx Informational(信息性状态码)
相比于其他类别状态码来说,1xx 你平时你大概率不会碰到,所以这里直接跳过。
20x 成功
- 200 OK :请求被成功处理。比如我们发送一个查询用户数据的HTTP 请求到服务端,服务端正确返回了用户数据。这个是我们平时最常见的一个 HTTP 状态码。
- 201 Created :请求被成功处理并且在服务端创建了一个新的资源。比如我们通过 POST 请求创建一个新的用户。
- 202 Accepted :服务端已经接收到了请求,但是还未处理。
30x 重定向
301 (Moved Permanently): 永久移动,后续请求都使用新地址,只对GET自动跳转,不会自动对POST/PUT/DELETE进行跳转。
302 (Found (aka Object Moved aka Moved Temporarily)): 临时移动,后续请求还是使用旧地址,只对GET自动跳转,不会自动对POST/PUT/DELETE进行跳转。
302原本定义是307的逻辑,但是主流实现是303的逻辑,为了明确定义,所以才新增了303和307两种状态码。因为历史原因现在主流实现仍然使用302来表达303的逻辑。
303 (See Other): 临时移动,后续请求还是使用旧地址,自动对GET/POST/PUT/DELETE进行跳转,但是跳转时都会使用GET
307 (Temporary Redirect): 临时移动,后续请求还是使用旧地址,只对GET自动跳转,不会自动对POST/PUT/DELETE进行跳转。
40x 客户端错误
- 400 Bad Request : 发送的HTTP请求存在问题。比如请求参数不合法、请求方法错误。
- 401 Unauthorized : 未认证却请求需要认证之后才能访问的资源。
- 403 Forbidden :直接拒绝HTTP请求,不处理。一般用来针对非法请求。
- 404 Not Found : 你请求的资源未在服务端找到。比如你请求某个用户的信息,服务端并没有找到指定的用户。
- 499: 这个不是标准的状态码。通常意味着客户端在服务器完成响应之前主动断开了连接。
50x 服务端错误
- 500 Internal Server Error : 服务端出问题了(通常是服务端出Bug了)。比如你服务端处理请求的时候突然抛出异常,但是异常并为在服务端被正确处理。
- 502 Bad Gateway :我们的网关将请求转发到服务端,但是服务端返回的却是一个错误的响应。