HTTP(超文本传输协议)状态码是用于表示客户端与服务器之间请求和响应状态的数字代码。以下是主要的HTTP状态码及其含义:
1. 1xx(信息性状态码)
- 100 Continue:服务器已收到请求的第一部分,需要客户端继续发送剩余部分。
- 101 Switching Protocols:服务器根据客户端的请求切换协议。例如,从 HTTP 切换到 WebSocket。
- 102 Processing:服务器已收到并正在处理请求,但尚未完成。通常用于 WebDAV(分布式作者和版本控制)。
2. 2xx(成功状态码)
- 200 OK:请求成功。服务器已成功处理请求,并返回了响应内容。
- 201 Created:请求成功,并且服务器创建了新的资源。通常用于 POST 请求。
- 202 Accepted:请求已被接受,但尚未处理。服务器承诺会处理,但不确定何时完成。
- 203 Non-Authoritative Information:请求成功,但响应的内容是来自第三方的,而不是原始服务器。
- 204 No Content:请求成功,但没有返回任何内容。通常用于 DELETE 请求。
- 205 Reset Content:请求成功,客户端应重置文档视图。通常用于表单提交后。
- 206 Partial Content:请求成功,但只返回了部分内容。通常用于范围请求(Range)。
3. 3xx(重定向状态码)
- 300 Multiple Choices:请求有多个可能的响应,客户端需要选择一个。
- 301 Moved Permanently:请求的资源已被永久移动到新的 URI。客户端应使用新的 URI 重新发送请求。
- 302 Found:请求的资源暂时移动到新的 URI。客户端应使用新的 URI 重新发送请求,但后续请求仍使用原 URI。
- 303 See Other:请求的资源可以被另一个 URI 替代。客户端应使用 GET 方法访问新的 URI。
- 304 Not Modified:请求的资源未被修改,客户端可以使用缓存的版本。通常用于条件 GET 请求。
- 307 Temporary Redirect:请求的资源暂时移动到新的 URI。客户端应使用相同的请求方法访问新的 URI。
- 308 Permanent Redirect:请求的资源已被永久移动到新的 URI。客户端应使用相同的请求方法访问新的 URI。
4. 4xx(客户端错误状态码)
- 400 Bad Request:请求格式错误,服务器无法理解。
- 401 Unauthorized:请求需要用户认证。客户端需要提供有效的认证信息。
- 402 Payment Required:保留状态码,通常未使用。
- 403 Forbidden:服务器理解请求,但拒绝执行。通常用于权限不足的情况。
- 404 Not Found:请求的资源不存在。
- 405 Method Not Allowed:请求方法不被允许。例如,服务器只支持 GET,但客户端使用了 POST。
- 406 Not Acceptable:服务器无法提供客户端请求的响应格式。
- 407 Proxy Authentication Required:客户端需要通过代理进行认证。
- 408 Request Timeout:服务器等待客户端请求超时。
- 409 Conflict:请求与服务器当前状态冲突。例如,同时修改同一资源。
- 410 Gone:请求的资源已被永久删除。
- 411 Length Required:服务器需要客户端指定请求体的长度。
- 412 Precondition Failed:请求的条件未满足。例如,条件 GET 请求失败。
- 413 Payload Too Large:请求体过大,服务器拒绝处理。
- 414 URI Too Long:请求的 URI 过长。
- 415 Unsupported Media Type:请求的媒体类型不被支持。
- 416 Range Not Satisfiable:范围请求无法满足。
- 417 Expectation Failed:服务器无法满足客户端的期望。
- 429 Too Many Requests:客户端请求过于频繁,被服务器限制。
5. 5xx(服务器错误状态码)
- 500 Internal Server Error:服务器内部错误,无法完成请求。
- 501 Not Implemented:服务器不支持请求的 HTTP 方法。
- 502 Bad Gateway:服务器作为网关或代理时,从上游服务器收到无效响应。
- 503 Service Unavailable:服务器暂时无法处理请求,通常用于维护或过载。
- 504 Gateway Timeout:服务器作为网关或代理时,上游服务器未在规定时间内响应。
- 505 HTTP Version Not Supported:服务器不支持请求的 HTTP 版本。
这些状态码在 HTTP 协议中非常重要,它们帮助开发者和用户理解请求和响应的状态,从而更好地调试和优化网络应用。