那就说一下http的状态码吧
HTTP 状态码
是服务器在响应客户端请求时返回的数字代码,用来表示请求的处理状态。状态码由三位数字组成,按不同的类别划分为五种类型:
1. 1xx - 信息性状态码
这些状态码表示请求已被接收,正在继续处理。
- 100 Continue: 服务器已收到请求头,客户端应继续发送请求主体。
- 101 Switching Protocols: 服务器同意切换协议,如从 HTTP/1.1 切换到 WebSocket。
2. 2xx - 成功状态码
这些状态码表示请求已成功被服务器处理。
- 200 OK: 请求成功,服务器已返回所请求的资源。
- 201 Created: 请求成功,并在服务器上创建了新的资源。
- 202 Accepted: 请求已接受,但尚未处理完成。
- 204 No Content: 请求成功,但服务器没有返回任何内容。
3. 3xx - 重定向状态码
这些状态码表示请求的资源已被移动,需要客户端执行进一步操作。
- 301 Moved Permanently: 请求的资源已永久移动到新的 URL。
- 302 Found: 请求的资源暂时移动到新的 URL,客户端应继续使用原有的 URL。
- 303 See Other: 客户端应使用 GET 方法请求另一个 URL。
- 304 Not Modified: 资源未修改,客户端可以继续使用缓存的版本。
- 307 Temporary Redirect: 请求的资源暂时移动到新的 URL,且要求使用相同的 HTTP 方法。
- 308 Permanent Redirect: 请求的资源已永久移动到新的 URL,且要求使用相同的 HTTP 方法。
4. 4xx - 客户端错误状态码
这些状态码表示客户端的请求有错误,服务器无法处理。
- 400 Bad Request: 请求无效或语法错误,服务器无法理解。
- 401 Unauthorized: 需要身份验证,客户端未提供有效的身份凭证。
- 403 Forbidden: 服务器拒绝请求,即使客户端已进行身份验证。
- 404 Not Found: 请求的资源在服务器上不存在。
- 405 Method Not Allowed: 请求方法(如 GET、POST)不被允许用于请求的资源。
- 408 Request Timeout: 服务器等待客户端发送请求超时。
- 409 Conflict: 请求与服务器当前状态冲突,通常用于资源更新时的冲突检测。
- 410 Gone: 请求的资源已被永久删除,且不会再存在。
- 413 Payload Too Large: 请求体积超过服务器允许的大小。
- 429 Too Many Requests: 客户端在一定时间内发送了过多的请求。
5. 5xx - 服务器错误状态码
这些状态码表示服务器在处理请求时出现错误。
- 500 Internal Server Error: 服务器内部错误,无法完成请求。
- 501 Not Implemented: 服务器不支持请求所需的功能。
- 502 Bad Gateway: 服务器作为网关或代理,从上游服务器接收到无效响应。
- 503 Service Unavailable: 服务器当前无法处理请求,通常是由于过载或维护。
- 504 Gateway Timeout: 服务器作为网关或代理,未能及时从上游服务器获取响应。
- 505 HTTP Version Not Supported: 服务器不支持请求所使用的 HTTP 版本。
每个状态码都为客户端提供了明确的反馈,以便客户端采取适当的后续操作,如重试请求、修正请求或处理错误。