web服务信息状态码

fifee
3
2025-08-21

(一张速查表)

一、分类总览

  • 1xx 信息性 – 已收到,请继续

  • 2xx 成功 – 请求已完成

  • 3xx 重定向 – 需进一步操作

  • 4xx 客户端错 – 请求有问题

  • 5xx 服务器错 – 服务器异常

二、1xx 信息性状态码

名称

一句话说明

典型场景

100

Continue

继续发请求体

大文件上传前先问服务器“能收吗?”

101

Switching Protocols

切协议

HTTP → WebSocket 升级

102

Processing

处理中,别断线

长耗时批处理保持连接

103

Early Hints

提前给资源提示

先告诉浏览器去加载关键 CSS/JS

三、2xx 成功状态码

名称

一句话说明

典型场景

200

OK

一切正常

最常见的成功

201

Created

已创建资源

POST/PUT 后返回新资源

202

Accepted

已排队,异步处理

视频转码、批量任务

203

Non-Authoritative

代理给的信息

CDN 改过头字段

204

No Content

成功但无返回体

DELETE 成功或 AJAX 提交

205

Reset Content

成功并清空表单

提交后重置输入框

206

Partial Content

断点续传

大文件分片下载、流媒体

四、3xx 重定向状态码

名称

一句话说明

典型场景

300

Multiple Choices

资源多版本自选

罕见

301

Moved Permanently

永久搬家

换域名、SEO 权重转移

302

Found

临时搬家

登录后跳首页

303

See Other

用 GET 去别处拿结果

POST-Redirect-GET 防重复提交

304

Not Modified

缓存可用

省流量

305

Use Proxy

走指定代理

已废弃

307

Temporary Redirect

临时搬(方法不变)

保持 POST

308

Permanent Redirect

永久搬(方法不变)

保持 POST

五、4xx 客户端错误状态码

名称

一句话说明

典型场景

400

Bad Request

请求语法错误

参数不对 / 格式错

401

Unauthorized

未认证

缺 Token/密码

402

Payment Required

需付费

预留,极少用

403

Forbidden

权限不足

普通用户进后台

404

Not Found

资源不存在

打错 URL

405

Method Not Allowed

方法不支持

对只读接口发 POST

406

Not Acceptable

格式无法满足

要 XML 只给 JSON

429

Too Many Requests

请求过快被限流

API 限速

六、5xx 服务器错误状态码

名称

一句话说明

典型场景

500

Internal Server Error

未知内部异常

代码抛错

501

Not Implemented

功能未实现

不支持的 HTTP 方法

502

Bad Gateway

上游返回无效

Nginx 收不到 PHP-FPM

503

Service Unavailable

服务暂时不可用

维护 / 过载

504

Gateway Timeout

上游超时

后端处理太慢

505

HTTP Version Not Supported

HTTP 版本不支持

用了服务器不认的协议

速记口诀

1xx 等一等,2xx 成功回,

3xx 去别处,4xx 你错了,

5xx 我挂了。

不明白继续往下看

  • 1xx - 信息性状态码:请求已被接收,继续处理。

  • 2xx - 成功状态码:请求已成功被服务器接收、理解并接受。

  • 3xx - 重定向状态码:需要客户端采取进一步的操作才能完成请求。

  • 4xx - 客户端错误状态码:客户端请求有语法错误或无法被处理。

  • 5xx - 服务器错误状态码:服务器在处理请求时发生错误。


1xx 信息性状态码 (Informational)

表示临时响应,提示请求已被接收,需要客户端继续操作。

  • 100 Continue

    • 含义:客户端应继续其请求。服务器已收到请求头,并且客户端可以继续发送请求体(例如,在发送一个大型POST请求体之前)。

    • 场景:客户端在发送大型请求体前,会先发送一个包含 Expect: 100-continue 头的请求来询问服务器是否愿意接收。服务器同意则返回100。

  • 101 Switching Protocols

    • 含义:服务器应客户端请求,正在切换协议(如从HTTP升级到WebSocket)。

    • 场景:WebSocket连接建立时,服务器对客户端的升级请求返回此代码。

  • 102 Processing (WebDAV)

    • 含义:服务器已收到并正在处理请求,但尚未有响应可用。

    • 场景:用于处理耗时较长的请求(如操作多个文件),防止客户端因超时而断开连接。服务器定期发送102以保持连接活跃。

  • 103 Early Hints

    • 含义:用于在最终响应之前返回一些预处理响应头,允许浏览器预加载资源。

    • 场景:服务器在生成完整HTML页面时,可以提前提示浏览器加载关键CSS或JS文件,显著提升页面加载性能。


2xx 成功状态码 (Success)

表示请求已成功处理。

  • 200 OK

    • 含义:请求成功。对于GET请求,响应中会包含所请求的资源。

    • 场景:最常见的成功状态码。

  • 201 Created

    • 含义:请求成功,并在服务器上创建了新的资源。

    • 场景:通常是在POST或PUT请求之后。响应头 Location 应包含新资源的URI。

  • 202 Accepted

    • 含义:请求已被接受,但尚未处理完成。处理可能是异步的。

    • 场景:适用于需要长时间处理的请求,如视频转码、大数据分析任务。

  • 203 Non-Authoritative Information

    • 含义:服务器成功处理了请求,但返回的元信息(头部字段)来自副本或第三方,而非原始服务器。

    • 场景:常见于中间代理(如CDN、缓存服务器)修改了响应头。

  • 204 No Content

    • 含义:服务器成功处理了请求,但不需要返回任何实体内容。

    • 场景:常用于DELETE请求成功或表单提交后,无需跳转页面的AJAX请求。

  • 205 Reset Content

    • 含义:类似于204,但额外要求客户端重置当前文档视图(如清空表单)。

    • 场景:提交表单后,清空表单所有字段以便用户再次输入。

  • 206 Partial Content

    • 含义:服务器成功处理了部分GET请求。响应头 Content-Range 指定了返回的内容范围。

    • 场景:用于大文件下载的断点续传或视频/音频的流媒体播放。


3xx 重定向状态码 (Redirection)

表示需要客户端采取进一步的操作来完成请求。

  • 300 Multiple Choices

    • 含义:请求的资源有多个可选响应(如不同语言版本)。客户端可自行选择。

    • 场景:在实践中非常罕见。

  • 301 Moved Permanently

    • 含义:请求的资源已永久移动到新的URI。浏览器和搜索引擎会缓存此重定向,将来所有请求都应直接使用新的URI。

    • 场景:网站改版、更换域名。对SEO有重要影响。

  • 302 Found

    • 含义:请求的资源临时从不同的URI响应。客户端应继续使用原始URI进行未来的请求。

    • 场景:最常见的临时重定向,例如用户登录后临时跳转到首页。

  • 303 See Other

    • 含义:对当前请求的响应可以在另一个URI上被找到,且应使用GET方法获取。

    • 场景:主要用于在POST操作完成后进行重定向,防止用户刷新页面时重复提交表单。

  • 304 Not Modified

    • 含义:资源未被修改。客户端可以使用缓存的版本。

    • 场景:服务器根据请求头(如 If-Modified-SinceIf-None-Match)验证缓存后,若资源未变化则返回此状态,节省带宽。

  • 305 Use Proxy

    • 含义:请求者必须通过指定的代理访问资源。

    • 状态由于安全原因,已被废弃

  • 307 Temporary Redirect & 308 Permanent Redirect

    • 含义:307和308是302和301的更严格版本。它们要求重定向时不能更改原始的请求方法(如POST必须保持为POST)。

    • 场景:用于确保非GET请求在重定向后不会意外地变为GET请求,保证数据的完整性。


4xx 客户端错误状态码 (Client Error)

表示错误似乎由客户端引起。

  • 400 Bad Request

    • 含义:服务器无法理解请求,因为存在语法错误(如请求体格式错误、参数无效)。

    • 场景:非常通用的客户端错误。

  • 401 Unauthorized

    • 含义:请求需要用户认证。响应会包含一个 WWW-Authenticate 头,指示如何进行认证。

    • 场景:访问受保护的资源时未提供或提供了错误的凭证。

  • 402 Payment Required

    • 含义:保留以供将来使用(如数字支付系统)。

    • 场景:极少使用,有时在API中用于表示需要付费或积分。

  • 403 Forbidden

    • 含义:服务器理解请求,但拒绝授权。与401不同,身份验证也无济于事。

    • 场景:用户已登录,但其权限不足以访问某个资源(如普通用户尝试访问管理员页面)。

  • 404 Not Found

    • 含义:服务器无法找到请求的资源。

    • 场景:最常见的错误之一,通常由错误的URL或链接导致。

  • 405 Method Not Allowed

    • 含义:服务器知道请求的方法(如PUT),但目标资源不支持该方法。

    • 场景:向只允许GET的API端点发送POST请求。响应头 Allow 会列出支持的方法。

  • 406 Not Acceptable

    • 含义:服务器无法提供符合客户端请求头 AcceptAccept-Language 等要求的内容。

    • 场景:客户端要求接收XML(Accept: application/xml),但服务器只能生成JSON。

  • 429 Too Many Requests

    • 含义:用户在给定的时间内发送了太多请求(“限速”或“限流”)。

    • 场景:防止暴力攻击和API滥用。响应头 Retry-After 可能提示客户端多久后可以重试。


5xx 服务器错误状态码 (Server Error)

表示服务器在处理请求时发生了错误。

  • 500 Internal Server Error

    • 含义:服务器遇到了一个未曾预料的情况,导致它无法完成对请求的处理。一个非常笼统的错误

    • 场景:后端代码出现未捕获的异常、配置错误等。

  • 501 Not Implemented

    • 含义:服务器不支持完成请求所需的功能(如未知的HTTP方法)。

    • 场景:客户端发送了一个服务器无法识别的请求方法。

  • 502 Bad Gateway

    • 含义:服务器作为网关或代理,从上游服务器收到了一个无效的响应

    • 场景:后端应用服务器(如PHP-FPM, Tomcat)崩溃或无响应,而前端的Nginx/Apache无法正确处理。

  • 503 Service Unavailable

    • 含义:服务器当前无法处理请求(由于临时过载或维护)。通常是临时状态

    • 场景:服务器正在进行维护或流量激增。响应头 Retry-After 可提示服务恢复的大概时间。

  • 504 Gateway Timeout

    • 含义:服务器作为网关或代理,未能及时从上游服务器收到响应。

    • 场景:后端应用服务器处理时间过长,导致网关(如Nginx)等待超时。问题在于上游服务器响应慢

  • 505 HTTP Version Not Supported

    • 含义:服务器不支持请求中使用的HTTP协议版本。

    • 场景:客户端使用了服务器不支持的HTTP版本(如HTTP/3)进行请求。