网络状态码
网络状态码(HTTP Status Codes)是服务器在响应客户端请求时返回的一个三位数字代码,用于表示请求的处理结果。这些状态码被分为几个类别,每个类别都有其特定的含义。以下是常见的网络状态码及其解释:
1xx - 信息性状态码
这些状态码表示临时的响应,服务器已收到请求,需要客户端继续执行操作。
- 100 Continue:服务器已收到请求头,客户端应该继续发送请求体。
- 101 Switching Protocols:服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到 HTTP/2。
- 102 Processing:服务器已收到并正在处理请求,但无响应可用。客户端应继续发送请求体。
2xx - 成功状态码
这些状态码表示请求已成功处理。
- 200 OK:请求成功,服务器返回了请求的资源。
- 201 Created:请求成功,并且服务器创建了新的资源。通常用于
POST请求。 - 202 Accepted:请求已接受,但尚未处理。服务器承诺最终会处理该请求,但不确定何时完成。
- 203 Non-Authoritative Information:服务器成功处理了请求,但返回的响应是来自另一个源的。
- 204 No Content:请求成功,但没有内容返回。通常用于
DELETE请求。 - 205 Reset Content:服务器成功处理了请求,且没有返回任何内容,但建议客户端重置文档视图。
- 206 Partial Content:服务器成功处理了部分 GET 请求。通常用于范围请求,如下载大文件时的断点续传。
3xx - 重定向状态码
这些状态码表示客户端需要采取进一步的操作才能完成请求,通常需要客户端重定向到另一个 URI。
- 300 Multiple Choices:请求的资源有多个可用的表示形式,客户端可以选择其中一个。
- 301 Moved Permanently:请求的资源已永久移动到新的 URI,客户端应使用新的 URI 重新发送请求。
- 302 Found:请求的资源暂时移动到新的 URI,客户端应使用新的 URI 重新发送请求。
- 303 See Other:请求的资源可以被另一个 URI 找到,客户端应使用 GET 方法访问新的 URI。
- 304 Not Modified:请求的资源未修改,客户端可以使用缓存的版本。
- 307 Temporary Redirect:请求的资源暂时移动到新的 URI,客户端应使用相同的方法和数据重新发送请求。
- 308 Permanent Redirect:请求的资源已永久移动到新的 URI,客户端应使用相同的方法和数据重新发送请求。
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:请求头中的条件未满足。
- 413 Payload Too Large:请求体过大,服务器拒绝处理。
- 414 URI Too Long:请求的 URI 过长,服务器拒绝处理。
- 415 Unsupported Media Type:请求的媒体类型不被支持。
- 416 Range Not Satisfiable:请求的范围无效。
- 417 Expectation Failed:服务器无法满足请求头中的 Expect 字段。
- 422 Unprocessable Entity:请求被服务器正确解析,但包含无效的字段。
- 429 Too Many Requests:客户端发送请求的频率过高,被服务器限制。
- 431 Request Header Fields Too Large:请求头字段过大,服务器拒绝处理。
5xx - 服务器错误状态码
这些状态码表示服务器在处理请求时发生了错误。
- 500 Internal Server Error:服务器内部错误,无法完成请求。
- 501 Not Implemented:服务器不支持请求的功能。
- 502 Bad Gateway:服务器作为网关或代理,从上游服务器收到无效响应。
- 503 Service Unavailable:服务器暂时无法处理请求,通常由于服务器过载或维护。
- 504 Gateway Timeout:服务器作为网关或代理,未在规定时间内从上游服务器收到响应。
- 505 HTTP Version Not Supported:服务器不支持请求的 HTTP 版本。
- 507 Insufficient Storage:服务器无法存储完成请求所必需的内容。
- 508 Loop Detected:服务器检测到无限循环的请求。
- 511 Network Authentication Required:客户端需要进行网络认证。
示例
假设你使用浏览器访问一个不存在的网页,服务器可能会返回 404 Not Found 状态码,表示请求的资源在服务器上未找到。浏览器会显示一个错误页面,提示用户资源未找到。
1 | 404 Not Found |
通过这些状态码,客户端可以了解请求的处理结果,并采取相应的措施。