订阅更新
4有用+1
HTTP状态消息
消息状态
- 中文名
- HTTP状态消息 [1]
- 外文名
- HTTP state message
- 规范定义
- HTTP状态消息
定义与概述
播报编辑
HTTP状态码是用以表示网页服务器超文本传输协议响应状态的3位数字代码。它由 RFC 2616 规范定义,并得到 RFC 2518、RFC 2817、RFC 2295、RFC 2774 与 RFC 4918 等规范扩展 [5] [9],除非另有说明,状态码是HTTP / 1.1标准(RFC 7231)的一部分 [9]。
状态码的第一个数字定义了响应的类别,共分为五类:信息响应(1xx)、成功响应(2xx)、重定向(3xx)、客户端错误(4xx)和服务器错误(5xx) [2] [4-7] [9-12] [14]。HTTP状态消息由数字状态码和可选的文本描述组成 [6],是服务器与客户端之间沟通请求处理结果的“通用语言” [14]。
发展历程与规范
播报编辑
HTTP状态码由 RFC 2616 规范定义的,并得到 RFC 2518、RFC 2817、RFC 2295、RFC 2774 与 RFC 4918 等规范扩展 [5] [9]。
RFC 6585最近刚刚发布,该文档描述了 4 个新的 HTTP 状态码。HTTP 协议一直在演变 [2],例如418 I'm a teapot 客户端错误响应代码表示服务器拒绝冲泡咖啡,因为它是一个茶壶,这个错误是超文本咖啡壶控制协议的参考,这是1998年愚人节的笑话 [8]。
除非另有说明,状态码是HTTP / 1.1标准(RFC 7231)的一部分 [9]。
信息
播报编辑
当浏览器从 web 服务器请求服务时,可能会发生错误。
从而有可能会返回下面的一系列状态消息 [1]:
消息: | 描述: |
|---|---|
100 Continue | 服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求。 |
101 Switching Protocols | 服务器转换协议:服务器将遵从客户的请求转换到另外一种协议。 |
成功
播报编辑
消息: | 描述: |
|---|---|
200 OK | 请求成功(其后是对GET和POST请求的应答文档。) |
201 Created | 请求被创建完成,同时新的资源被创建。 |
202 Accepted | 供处理的请求已被接受,但是处理未完成。 |
203 Non-authoritative Information | 文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝。 |
204 No Content | 没有新文档。浏览器应该继续显示原来的文档。如果用户定期地刷新页面,而Servlet可以确定用户文档足够新,这个状态代码是很有用的。 |
205 Reset Content | 没有新文档。但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容。 |
206 Partial Content | 客户发送了一个带有Range头的GET请求,服务器完成了它。 |
重定向
播报编辑
消息: | 描述: |
|---|---|
300 Multiple Choices | 多重选择。链接列表。用户可以选择某链接到达目的地。最多允许五个地址。 |
301 Moved Permanently | 所请求的页面已经转移至新的url。 |
302 Found | 所请求的页面已经临时转移至新的url。 |
303 See Other | 所请求的页面可在别的url下被找到。 |
304 Not Modified | 未按预期修改文档。客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。 |
305 Use Proxy | 客户请求的文档应该通过Location头所指明的代理服务器提取。 |
306 Unused | |
307 Temporary Redirect | 被请求的页面已经临时移至新的url。 |
客户端错误
播报编辑
消息: | 描述: |
|---|---|
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 | "Content-Length" 未被定义。如果无此内容,服务器不会接受请求。 |
412 Precondition Failed | 请求中的前提条件被服务器评估为失败。 |
413 Request Entity Too Large | 由于所请求的实体的太大,服务器不会接受请求。 |
414 Request-url Too Long | 由于url太长,服务器不会接受请求。当post请求被转换为带有很长的查询信息的get请求时,就会发生这种情况。 |
415 Unsupported Media Type | 由于媒介类型不被支持,服务器不会接受请求。 |
416 | 服务器不能满足客户在请求中指定的Range头。 |
417 Expectation Failed | - |
服务器错误
播报编辑
消息: | 描述: |
|---|---|
500 Internal Server Error | 请求未完成。服务器遇到不可预知的情况。 |
501 Not Implemented | 请求未完成。服务器不支持所请求的功能。 |
502 Bad Gateway | 请求未完成。服务器从上游服务器收到一个无效的响应。 |
503 Service Unavailable | 请求未完成。服务器临时过载或当机。 |
504 Gateway Timeout | 网关超时。 |
505 HTTP Version Not Supported | 服务器不支持请求中指明的HTTP协议版本。 |
新增状态码
播报编辑
随着HTTP协议的持续演进,新的RFC标准会引入新的状态码以适应现代Web开发的需求,例如RFC 6585(于2012年发布)就定义了4个新的HTTP状态码 [2]。
428 Precondition Required(要求先决条件):客户端必须发送如If-Match或If-None-Match等特定的请求头才能执行请求,这个方法为服务器提供一种有效的方法来阻止“丢失更新”(lost update)问题 [2]。
429 Too Many Requests(太多请求):用于请求速率限制,当客户端在单位时间内发送过多请求时,服务器会返回此状态码,响应头应包含Retry-After以告知客户端何时可以再次尝试请求 [2] [14]。
431 Request Header Fields Too Large(请求头字段太大):当客户端发送的HTTP请求头过大,超出服务器处理能力时,服务器会返回此状态码 [2]。
511 Network Authentication Required(要求网络认证):客户端需要先进行网络认证才能访问资源,常见于公共WiFi等网络接入点,在用户完成登录或接受协议前,会拦截HTTP请求并返回此状态码 [2]。
实际应用与场景
播报编辑
当遇到4xx或5xx状态码时,需要检查请求的有效性和正确性,并使用开发者工具或日志记录来跟踪和调试请求和响应。对于常见的4xx和5xx状态码,提供友好和有用的错误页面对于用户体验和问题排查很重要 [3]。
了解与缓存相关的状态码,如304 Not Modified,可以帮助优化应用程序的性能,合理使用缓存策略可以减少对服务器的请求次数,提高响应速度,并降低带宽和资源消耗 [3]。
401 Unauthorized表示请求需要进行身份验证,服务器要求客户端提供有效的身份凭证才能访问资源。403 Forbidden表示服务器拒绝了请求,即使身份验证已成功,这通常是因为客户端没有足够的权限访问该资源 [3]。
重定向状态码对于搜索引擎优化非常重要,当网站的URL结构发生变化时,使用重定向状态码可以确保搜索引擎能够正确索引新的页面位置,从而保持网站的可见性和排名 [13]。301 Moved Permanently是永久重定向,浏览器会缓存,对SEO友好 [14]。
HTTP状态码不仅是“错误提示”,更是系统设计的契约。在RESTful API设计中,依赖状态码传达结果,例如200 OK表示标准成功响应,201 Created表示资源创建成功,400 Bad Request表示请求格式错误,404 Not Found表示URL对应资源不存在,500 Internal Server Error表示通用服务器错误 [14]。
对于运维人员而言,HTTP状态码是监控和维护服务器性能与稳定性的重要指标 [10]。503 Service Unavailable表示服务暂时不可用,通常由于过载或维护中,504 Gateway Timeout表示网关等待上游响应超时 [14]。
优势与不足
播报编辑
HTTP重定向状态码支持资源更改,当服务器资源位置变化时,可引导客户端访问新位置,无需手动修改请求代码。它有助于维持链接可用性,例如在页面不存在时引导用户至相关页面以提升用户体验,同时对搜索引擎优化(SEO)至关重要,能确保URL结构变化后搜索引擎正确索引新页面,维持网站可见性和排名 [13]。
重定向状态码会增加额外的网络请求,导致延迟和网络负载增加。无谓的重定向可能浪费网络带宽和服务器资源,且重定向次数过多或链过长可能引发SEO劣化,如搜索引擎低排名或不索引 [13]。
词条评价
参考资料
- 1HTTP 状态消息.w3school [引用日期2013-05-20]
- 2HTTP协议状态码详解(HTTP Status Code).www.cloud.tencent.com.2026-01-09
- 3必备指南:20个常见HTTP状态码的解析与应用.Tencent腾讯(腾讯官方网).2026-02-02
- 4HTTP协议详解.阿里云..2021-10-09
- 5HTTP 响应状态码全解.Tencent腾讯(腾讯官方网).2022-11-05
- 6HTTP的状态消息 .电子发烧友.2023-05-06
- 7http状态码主要是做什么的.php中文网.2023-10-13
- 8418 I'm a teapot.www.bookstack.cn.2019-04-20
- 9http状态码简介分类及常见状态码含义详解.Tencent腾讯(腾讯官方网).2026-02-02
- 10HTTP 状态码解析:理解网络请求的回应.Tencent腾讯(腾讯官方网).2024-12-05
展开全部