HTTP 状态码详解
阅读:53
点赞:0
HTTP(超文本传输协议)状态码是客户端(如网页浏览器或移动应用)与服务器之间通信结果的重要指示器。它们提供了有关 HTTP 请求结果的关键信息,使客户端和服务器能够理解并对不同的场景做出适当响应。本文将详细探讨不同类别的 HTTP 状态码的意义和作用。
一. 信息响应(1xx)
这些状态码表示来自服务器的临时响应,告知客户端请求已被接收并理解,且需要进一步的操作。
1. 100 Continue
100 Continue: 服务器确认已接收到客户端的请求头,并指示客户端继续进行请求。
2. 101 Switching Protocols
101 Switching Protocols: 服务器确认客户端请求切换协议,并通过响应中的 Upgrade 头部指示该变更。
3. 102 Processing
102 Processing: 服务器已接收到请求并正在处理,但尚未完成(WebDAV; RFC 2518)。
二. 成功响应(2xx)
这些状态码表示客户端的请求已成功接收、理解和接受。
1. 200 OK
200 OK: 请求成功,服务器返回了请求的资源。
2. 201 Created
201 Created: 请求已被满足,结果是创建了一个新资源。
3. 202 Accepted
202 Accepted: 请求已被接受进行处理,但处理尚未完成。
4. 203 Non-Authoritative Information
203 Non-Authoritative Information: 服务器是一个转换代理,已收到源服务器的 200 OK 响应,但返回了修改过的响应版本。
5. 204 No Content
204 No Content: 服务器成功处理了请求,但不需要返回任何内容。
6. 205 Reset Content
205 Reset Content: 告诉客户端重置文档视图,清除表单数据。
7. 206 Partial Content
206 Partial Content: 服务器满足部分 GET 请求,指示请求的数据范围。
8. 207 Multi-Status
207 Multi-Status: 提供多个独立操作的状态(WebDAV; RFC 4918)。
9. 208 Already Reported
208 Already Reported: 用于 DAV: propstat 响应元素内部,以避免重复列举对同一集合的多个绑定的内部成员(WebDAV; RFC 5842)。
10. 226 IM Used
226 IM Used: 服务器已满足对资源的请求,响应是对应用于当前实例的一个或多个实例操作结果的表示(RFC 3229)。
三. 重定向消息(3xx)
这些状态码表示客户端需要采取额外的操作以完成请求。
1. 300 Multiple Choices
300 Multiple Choices: 指示有多个选项可以选择资源。
2. 301 Moved Permanently
301 Moved Permanently: 请求的资源已永久移动到新 URL。
3. 302 Found
302 Found: 请求的资源临时驻留在不同的 URL,客户端应使用新 URL 进行后续请求。
4. 303 See Other
303 See Other: 对请求的响应可以在另一个 URL 下找到,使用 GET 方法。
5. 304 Not Modified
304 Not Modified: 指示自请求头中指定的版本以来,资源没有被修改。
6. 305 Use Proxy
305 Use Proxy: 请求的资源仅通过代理可用,地址在响应中提供。
7. 307 Temporary Redirect
307 Temporary Redirect: 与 302 相似,指示临时重定向,但客户端应继续使用原 URL 进行未来请求。
8. 308 Permanent Redirect
308 Permanent Redirect: 请求及所有未来请求应使用另一个 URI 重复(RFC 7538)。
四. 客户端错误响应(4xx)
这些状态码表示客户端方面的错误,例如请求格式错误或身份验证问题。
1. 400 Bad Request
400 Bad Request: 由于客户端错误,服务器无法处理请求,通常表示语法错误。
2. 401 Unauthorized
401 Unauthorized: 客户端需要进行身份验证以获得请求的响应。
3. 402 Payment Required
402 Payment Required: 保留供将来使用。
4. 403 Forbidden
403 Forbidden: 服务器理解请求但拒绝授权。
5. 404 Not Found
404 Not Found: 服务器无法找到请求的资源。
6. 405 Method Not Allowed
405 Method Not Allowed: 请求中指定的方法不允许用于请求 URI 标识的资源。
7. 406 Not Acceptable
406 Not Acceptable: 服务器无法生成满足客户端在请求的 "Accept" 头部字段中指定的约束的响应。
8. 407 Proxy Authentication Required
407 Proxy Authentication Required: 类似于 401,但表示客户端需要与代理进行身份验证。
9. 408 Request Timeout
408 Request Timeout: 服务器在准备等待的时间内未接收到完整的请求消息。
10. 409 Conflict
409 Conflict: 请求由于与资源的当前状态发生冲突而无法完成。
11. 410 Gone
410 Gone: 指示请求的资源不再可用于服务器上,并且没有已知的转发地址。
12. 411 Length Required
411 Length Required: 服务器拒绝接受请求,没有定义 Content-Length。
13. 412 Precondition Failed
412 Precondition Failed: 请求头字段中给出的一个或多个条件在服务器上测试时评估为假。
14. 413 Payload Too Large
413 Payload Too Large: 服务器拒绝处理请求,因为有效载荷大于服务器愿意或能够处理的大小。
15. 414 URI Too Long
414 URI Too Long: 服务器拒绝处理请求,因为 URI 超过了服务器愿意解释的长度。
16. 415 Unsupported Media Type
415 Unsupported Media Type: 服务器拒绝接受请求,因为有效载荷格式不受支持。
17. 416 Range Not Satisfiable
416 Range Not Satisfiable: 客户端请求了文件的一部分,但服务器无法提供该部分。
18. 417 Expectation Failed
417 Expectation Failed: 服务器无法满足 Expect 请求头字段的要求。
19. 418 I'm a teapot
418 I'm a teapot: 服务器拒绝冲泡咖啡,因为它是一个茶壶(RFC 2324)。
20. 421 Misdirected Request
421 Misdirected Request: 请求被导向了一个无法生成响应的服务器(RFC 7540)。
21. 422 Unprocessable Entity
422 Unprocessable Entity: 服务器理解请求实体的内容类型,但无法处理包含的指令(WebDAV; RFC 4918)。
22. 423 Locked
423 Locked: 正在访问的资源被锁定(WebDAV; RFC 4918)。
23. 424 Failed Dependency
424 Failed Dependency: 请求失败,因为它依赖的另一个请求失败(WebDAV; RFC 4918)。
24. 425 Too Early
425 Too Early: 表示服务器不愿意处理可能被重放的请求(RFC 8470)。
25. 426 Upgrade Required
426 Upgrade Required: 客户端应切换到不同的协议,如 TLS/1.0(RFC 2817)。
26. 428 Precondition Required
428 Precondition Required: 原始服务器要求请求是有条件的(RFC 6585)。
27. 429 Too Many Requests
429 Too Many Requests: 用户在给定时间内发送了过多请求(RFC 6585)。
28. 431 Request Header Fields Too Large
431 Request Header Fields Too Large: 服务器不愿意处理请求,因为其头字段太大(RFC 6585)。
29. 451 Unavailable For Legal Reasons
451 Unavailable For Legal Reasons: 由于法律要求,服务器拒绝访问资源(RFC 7725)。
五. 服务器错误响应(5xx)
这些状态码表示服务器方面的错误,阻止其完成请求。
1. 500 Internal Server Error
500 Internal Server Error: 通用错误信息,表示服务器端出现了某种问题。
2. 501 Not Implemented
501 Not Implemented: 服务器不支持满足请求所需的功能。
3. 502 Bad Gateway
502 Bad Gateway: 服务器在作为网关或代理时,从上游服务器收到无效响应。
4. 503 Service Unavailable
503 Service Unavailable: 服务器由于临时过载或维护,当前无法处理请求。
5. 504 Gateway Timeout
504 Gateway Timeout: 服务器在作为网关或代理时,未及时从上游服务器收到响应。
6. 505 HTTP Version Not Supported
505 HTTP Version Not Supported: 服务器不支持请求中使用的 HTTP 协议版本。
7. 506 Variant Also Negotiates
506 Variant Also Negotiates: 对请求的透明内容协商导致循环引用(RFC 2295)。
8. 507 Insufficient Storage
507 Insufficient Storage: 服务器无法存储完成请求所需的表示(WebDAV; RFC 4918)。
9. 508 Loop Detected
508 Loop Detected: 服务器在处理请求时检测到无限循环(WebDAV; RFC 5842)。
10. 510 Not Extended
510 Not Extended: 服务器需要进一步扩展请求以完成请求。
11. 511 Network Authentication Required
511 Network Authentication Required: 客户端需要进行身份验证以获得网络访问权限(RFC 6585)。
了解 HTTP 状态码对 Web 开发人员、系统管理员以及任何涉及构建或维护 Web 服务的人士至关重要。通过正确解释这些状态码,开发人员可以有效地诊断和解决问题,从而提供更好的用户体验,促进客户端和服务器之间的顺畅互动。