HTTP常见异常状态码

HTTP状态码用于表示服务器对HTTP请求的响应。以下是常见的HTTP异常状态码及其详解:

一、1xx:信息性状态码

  • 100 Continue:服务器已接收到请求的一部分,并且客户端应继续发送请求的其余部分。
  • 101 Switching Protocols:服务器正在根据客户端的请求切换协议。例如,在WebSocket握手过程中,服务器会返回此状态码以确认协议切换。
  • 102 Processing(WebDAV):服务器已接受并正在处理请求,但尚无响应可用。这通常用于WebDAV(基于HTTP的分布式创作和版本控制)协议中。

二、2xx:成功状态码

虽然2xx状态码表示请求已成功处理和接受,但某些情况下也可能被视为异常,如:

  • 204 No Content:服务器成功处理了请求,但没有返回任何内容。这通常用于DELETE请求,表示资源已被成功删除,但无需返回任何响应体。

三、3xx:重定向状态码

  • 301 Moved Permanently:被请求的资源已经永久移动到新的位置。客户端应使用新的URI进行后续请求。
  • 302 Found:被请求的资源暂时移动到新的位置。这通常用于临时重定向,如用户登录后的页面跳转。
  • 304 Not Modified:自上次请求后,请求的网页未被修改过。客户端可以继续使用缓存的资源。

重定向状态码本身并不一定是异常,但如果重定向链不正确或导致无限重定向,则可能被视为问题。

四、4xx:客户端错误状态码

  • 400 Bad Request:服务器无法理解客户端的请求。这通常是由于请求格式错误、参数不正确或请求体过大导致的。
  • 401 Unauthorized:请求要求进行身份验证。客户端需要提供有效的身份凭证才能访问资源。
  • 403 Forbidden:服务器拒绝了请求,即使身份验证已成功。这通常是因为客户端没有足够的权限访问该资源。
  • 404 Not Found:服务器无法找到请求的资源。这通常是由于URL路径错误、资源不存在或权限不足导致的。
  • 405 Method Not Allowed:禁用请求中指定的方法。例如,当客户端尝试使用POST方法访问一个只允许GET方法的资源时,服务器会返回此状态码。
  • 406 Not Acceptable:无法使用请求的内容特性响应请求的网页。这通常是由于客户端请求的媒体类型不被服务器支持导致的。
  • 408 Request Timeout:服务器等候请求时发生超时。这通常是由于客户端发送请求后长时间未收到响应导致的。
  • 413 Payload Too Large:请求实体过大。这通常是由于客户端尝试上传的文件或数据超过了服务器允许的最大大小导致的。
  • 414 Request-URI Too Long:请求的URI过长。这通常是由于URL路径或查询参数过长导致的。
  • 415 Unsupported Media Type:请求的格式不受请求页面的支持。这通常是由于客户端发送的请求体格式不被服务器支持导致的。

五、5xx:服务器错误状态码

  • 500 Internal Server Error:服务器遇到错误,无法完成请求。这通常是由于服务器内部程序错误、数据库问题或配置错误导致的。
  • 501 Not Implemented:服务器不具备完成请求的功能。例如,当客户端请求一个服务器不支持的HTTP方法时,服务器会返回此状态码。
  • 502 Bad Gateway:服务器作为网关或代理,从上游服务器收到无效响应。这通常是由于上游服务器故障或网络问题导致的。
  • 503 Service Unavailable:服务器当前无法处理请求,通常是因为过载或维护。这通常是一个临时状态,客户端可以在稍后重试请求。
  • 504 Gateway Timeout:服务器作为网关或代理,但没有及时从上游服务器收到请求。这通常是由于上游服务器响应超时导致的。

六、特殊状态码

  • 418 I'm a teapot(RFC 2324, April Fools' jokes):这是一个非官方的、仅用于娱乐的状态码。它表示服务器拒绝尝试用咖啡壶煮咖啡。虽然这不是一个真正的错误状态码,但它被包含在RFC 2324文档中作为一个愚人节笑话。
相关推荐
杨凯凡2 小时前
Spring Framework 7 HTTP Interface 实战:声明式 RestClient、超时与测试
java·spring·http
CodeYp20194 小时前
第11讲:应用层协议 HTTP
linux·http
Thanks_ks1 天前
HTTP 请求方法与 RESTful 接口设计:GET 和 POST 到底怎么用
http·api·restful·状态码·get·post·接口设计
LK_072 天前
【FastAPI】基础篇 01|开始之前:API、HTTP 与 FastAPI 到底是什么
网络协议·http·fastapi
阿星_2 天前
pydio登陆不了分析问题
网络协议·http·https
Joy T2 天前
Gzip 压缩原理与实践:HTTP 响应压缩、性能收益与工程配置
网络·网络协议·http
xixingzhe25 天前
AI 对话打字机效果:SSE 和 HTTP 的区别与适用场景
网络·网络协议·http
AI 编程助手GPT6 天前
curl 返回成功就能收文件?用本地 HTTP 验证错误页与超时
网络·网络协议·http
apollo_qwe6 天前
接口超时了,前端为什么不能直接重试?
javascript·http
Yves..7 天前
HTTP 协议学习笔记:从报文结构到抓包实践
网络协议·http·fiddler