HTTP状态码是在HTTP协议中,服务器响应请求时返回的标准化状态信息。这些状态码可以帮助我们了解请求的处理情况以及可能出现的问题。以下是前端常见的HTTP状态码及其功能:
1xx(信息性状态码):这类状态码表示接收的请求正在处理中。
- 100 Continue:客户端已经发送了请求头,服务器确认已经收到了请求头,客户端可以继续发送请求体。
- 101 Switching Protocols:服务器已经理解了客户端的请求,并将通过Upgrade消息头通知客户端采用不同的协议来完成这个请求。
2xx(成功状态码):这类状态码表示服务器已成功处理了请求。
- 200 OK:请求已成功,请求所希望的响应头或数据体将随此响应返回。
- 201 Created:请求成功并且服务器创建了新的资源。
- 202 Accepted:服务器已接受请求,但尚未处理。
- 203 Non-Authoritative Information:服务器已返回了请求的数据,但可能是从缓存或者其他地方获取的非权威数据。
- 204 No Content:服务器成功处理了请求,但没有返回任何内容。
- 205 Reset Content:服务器成功处理了请求,但不返回任何实体内容,但是与204状态码不同的是,该响应要求请求者重置文档视图(例如,清除表单),以完整地显示响应中的实体。
- 206 Partial Content:服务器成功处理了部分GET请求。
3xx(重定向状态码):这类状态码表示需要客户端采取进一步的操作才能完成请求。
- 300 Multiple Choices:针对请求,服务器可发送一个包含最佳选择资源的响应。
- 301 Moved Permanently:请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一。
- 302 Found:请求的资源现在临时从不同的URI响应请求。
- 303 See Other:对于POST请求,响应可以在另一个URI上找到,客户端应使用GET方法访问该URI。
- 304 Not Modified:自从上次请求后,请求的资源未修改,因此不需要再次传输资源。
- 307 Temporary Redirect:请求的资源临时从不同的URI响应请求,但将来可能会恢复到原URI。
4xx(客户端错误状态码):这类状态码表示客户端似乎发生了错误。
- 400 Bad Request:请求由于包含语法错误而不能被服务器理解。
- 401 Unauthorized:当前请求需要用户验证。
- 402 Payment Required:该状态码是为了将来可能的需求而保留的,用于数字支付系统。
- 403 Forbidden:服务器理解请求,但是拒绝执行它。
- 404 Not Found:请求的资源不存在。
- 405 Method Not Allowed:请求中的方法被拒绝。
- 406 Not Acceptable:资源特性导致服务器无法理解请求。
- 407 Proxy Authentication Required:用户必须首先使用代理服务器进行身份验证。
- 408 Request Timeout:服务器等待客户端发送的请求时间过长,超时。
- 409 Conflict:请求由于冲突无法完成。
- 410 Gone:请求的资源已永久删除。
- 411 Length Required:客户端没有提供足够的信息来完成请求。
- 412 Precondition Failed:请求中的前提条件被评估为false。
- 413 Request Entity Too Large:请求实体过大,服务器无法处理。
- 414 Request-URI Too Long:请求的URI过长,服务器无法处理。
- 415 Unsupported Media Type:请求中的实体不是服务器支持的媒体类型。
- 416 Range Not Satisfiable:无法满足请求范围。
- 417 Expectation Failed:服务器无法满足Expect请求头字段的要求。
5xx(服务器错误状态码):这类状态码表示服务器在尝试处理请求时发生内部错误。
- 500 Internal Server Error:服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。
- 501 Not Implemented:服务器不支持实现请求中所要求的功能。
- 502 Bad Gateway:作为网关或代理角色的服务器从上游服务器收到无效响应。
- 503 Service Unavailable:由于临时的服务器维护或过载,服务器当前无法处理请求。
- 504 Gateway Timeout:作为网关或代理角色的服务器没有及时从上游服务器收到请求。
- 505 HTTP Version Not Supported:服务器不支持请求中使用的HTTP协议版本。
了解这些状态码及其功能有助于我们在开发和调试前端应用时更好地处理请求和响应,从而提高应用的稳定性和用户体验。