我们都经历过:当您突然因 HTTP 错误代码而无法继续搜索时,您正在漫不经心地滚动网页。 作为用户,这可能是令人沮丧的体验。 但是,HTTP 状态代码不仅仅是传达错误信息——这些代码还可以表示成功传输,或重定向到新站点 URL。 尝试访问网页时,您的浏览器会向托管该网页的 Web 服务器发送请求。
根据传输是否成功,Web 服务器可以返回选定数量的响应。 这些称为 HTTP 状态代码。 它们从信息性和成功的到重定向和错误代码各不相同。 每个状态代码都标有一个数字标识符,范围在 100 到 599 之间。所有代码及其含义均由 Internet 号码分配机构 (IANA) 维护。
这是 HTTP 状态代码及其含义的详尽列表。
1xx HTTP 状态代码:信息响应
1xx 响应代码仅供参考。 它们表明您的 Web 浏览器已向服务器发出请求并正在等待响应。
- HTTP 状态码 100(继续): 服务器已收到您浏览器的请求标头,现在正在等待您的请求正文。
- HTTP 状态码 101(交换协议):您的浏览器已发送协议更改请求,服务器已响应。
- HTTP 状态码 102(处理中): 服务器正在处理您的浏览器请求,但尚未收到来自服务器的响应。
- HTTP 状态码 103(早期提示):服务器正在向您的浏览器发送一些“早期提示”以在服务器提供最终响应之前预加载某些资源。
2xx HTTP 状态码:成功响应
这些状态代码通知客户端(您的 Web 浏览器)一切都在按应有的方式处理。
- HTTP 状态码 200(正常): 请求成功,并提供了适当的响应。 根据 HTTP 方法(GET、HEAD、PUT/POST 或 TRACE),响应会有所不同。
- HTTP 状态码 201(已创建): 您的浏览器请求已成功,因此已创建新资源。 这是对 POST 和一些 PUT 请求的通常响应。
- HTTP 状态码 202(已接受): 服务器已收到您浏览器的请求,但尚未执行。
- HTTP 状态码 203(非权威信息): 服务器正在返回不是来自源服务器的元信息,因为当前可用的元信息可能不同。 这用于从第三方或本地副本收集信息的情况。
- HTTP 状态码 204(无内容): 请求成功后,服务器没有内容可返回。 但是,它可能会返回当前的标头信息,以便您的用户代理更新其缓存的标头。
- HTTP 状态码 205(重置内容):您的浏览器已收到服务器响应以更改文档视图。
- HTTP 状态码 206(部分内容): 服务器已返回部分内容,因为您的浏览器已使用 Range 标头请求它。
- HTTP 状态代码 207(多状态):对于需要多个状态代码的特定情况,服务器返回有关多个源的信息。
- HTTP 状态码 208(已报告):为避免不必要的枚举,服务器返回已报告 WebDAV 元素的内部成员的信息 通常,此响应遵循 207(多状态)响应。
- HTTP 状态码 226(使用 IM): 服务器已成功处理浏览器的 GET 方法,以检索已缓存资源的更新版本。 通常,当对请求的资源进行一处或多处轻微修改时,会返回响应。
3xx HTTP 状态码:重定向响应
300-399 范围内的状态代码表示所需内容已被移动到不同的位置,并让浏览器知道在哪里可以找到它。
- HTTP状态码300(多选):对于您的 Web 浏览器发出的请求,有多个响应可用。
- HTTP 状态码 301(永久移动):服务器将您的浏览器重定向到不同的 URL,因为所需的资源已永久移动到新位置。
- HTTP 状态码 302(找到): 您的浏览器已收到请求资源已暂时移至其他位置的响应。 但是,相同的 URL 应该用于任何后续请求。
- HTTP 状态码 303(见其他):服务器通知浏览器所需的资源位于不同的 URL,应该使用 GET 方法请求。
- HTTP 状态码 304(未修改):返回的响应告诉 web 浏览器所需的资源自上次请求以来没有改变。 因此,浏览器应该使用它存储的缓存版本。
- HTTP 状态码 305(使用代理):服务器需要代理才能返回请求的资源。 此响应代码当前未使用,因为大多数当前浏览器由于安全问题不支持它。
- HTTP 状态码 306(切换代理):服务器需要使用特定代理才能完成后续请求。 同样,出于安全考虑,不支持此响应消息。
- HTTP 状态码 307(临时重定向): 替代 302 (Found) 状态代码,服务器通知浏览器所需的资源暂时位于不同的位置。 但是,请求资源时必须使用相同的 HTTP 方法。
- HTTP 状态码 308(永久重定向): 301(永久移动)状态代码的后续版本,您的网络浏览器正在尝试访问已永久移动到新位置的资源。 这种类型的重定向不允许更改 HTTP 请求方法。
4xx HTTP 状态代码:客户端错误响应
这些状态代码表明存在由客户端引起的错误。
- HTTP 状态码 400(错误请求): 客户端出错,导致服务器无法返回响应。
- HTTP 状态码 401(未经授权):服务器需要身份验证才能让 Web 浏览器继续访问请求的资源。
- HTTP 状态码 402(需要付款):顾名思义,此代码是为数字支付系统保留的。 然而,它并没有被广泛使用。
- HTTP 状态码 403(禁止): 由于客户端没有必要的权限,Web 浏览器被拒绝访问请求的源。
- HTTP 状态码 404(未找到): 找不到所需的资源,但将来可能可用。
- HTTP 状态码 405(不允许的方法):服务器识别 Web 浏览器使用的 HTTP 请求方法,但需要使用不同的方法才能提供所需的资源。
- HTTP 状态码 406(不可接受):服务器通知客户端没有资源符合您的网络浏览器请求的标准。
- HTTP 状态码 407(需要代理验证): 类似于 401 (Unauthorized) 状态码,但服务器需要通过代理进行身份验证。
- HTTP 状态码 408(请求超时): 服务器等待客户端在指定时间范围内发送请求超时。
- HTTP 状态码 409(冲突): 与所需资源的当前状态存在冲突,因此服务器无法返回响应。
- HTTP 状态码 410(已消失): 与 404(未找到)状态代码不同,但它表示所请求的资源将来不会再次可用。
- HTTP 状态码 411(需要长度):服务器通知您的网络浏览器它要求请求包含特定的内容长度,以便返回所需的资源。
- HTTP 状态代码 412(预处理失败): 您的 Web 浏览器发出了带有先决条件的请求,服务器无法满足其中一个条件。
- HTTP 状态码 413(有效负载太大): 服务器不愿意处理请求,因为它太大了。
- HTTP 状态码 414(URL 太长): 您的网络浏览器发出的请求无法被服务器处理,因为客户端将太多数据编码为查询字符串,然后将其作为 GET 方法发送。
- HTTP 状态码 415(不支持的媒体类型): 请求已被服务器拒绝,因为它不支持所需的媒体类型。
- HTTP 状态码 416(范围不满足): 服务器无法提供客户端请求的部分。
- HTTP 状态码 417(预期失败): 您的 Web 浏览器已向带有 Expect 标头的服务器发出请求,但服务器无法满足要求。
- HTTP 状态码 418(我是茶壶):一个 HTTP 复活节彩蛋,它是愚人节玩笑的一部分。 HTTP 服务器预计不会实现此协议,但如果您对它的外观感到好奇,请查看 Google 的 Teapot 页面。
- HTTP 状态码 421(错误的请求): 您的网络浏览器的请求已被重定向到另一台服务器,该服务器无法产生响应。
- HTTP 状态码 422(无法处理的实体): 您的网络浏览器发出的请求中存在语义错误,因此无法跟进。
- HTTP 状态码 423(锁定): 对所需资源的访问被拒绝,因为它已被锁定。
- HTTP 状态码 424(依赖失败): 您的网络浏览器发出的请求失败,因为它依赖于另一个同样失败的请求。
- HTTP 状态码 425(太早):服务器拒绝处理请求,因为它可能被重播。
- HTTP 状态码 426(需要升级): 当前协议不被服务器接受,因此服务器返回一个 Upgrade 报头给客户端请求协议更新。
- HTTP 状态码 428(需要先决条件):Web 浏览器必须指定服务器处理其请求的条件。
- HTTP 状态码 429(请求过多): 服务器在分配的等待时间内收到了太多来自您的 Web 浏览器的请求。
- HTTP 状态码 431(请求标头字段太大): 客户端请求未被服务器处理,因为提供的请求标头太大。 服务器愿意在调整标头大小后处理请求。
- HTTP 状态码 451(由于法律原因不可用): 由于法律原因,服务器拒绝提供所需的资源。
5xx HTTP 状态代码:服务器错误响应
5xx 状态码表示服务器处理请求失败。
- HTTP 状态码 500(内部服务器错误):这是服务器在遇到意外情况时提供的一般错误消息。
- HTTP 状态码 501(未实现): 服务器表示它无法满足请求或无法识别 HTTP 方法。
- HTTP 状态码 502(错误网关): 服务器返回一个响应,它作为上游服务器的网关或代理,提供了无效的响应。
- HTTP 状态码 503(服务不可用): 服务器无法处理请求,因为它超载或正在维护中。
- HTTP 状态码 504(网关超时): 上游服务器没有及时响应第二台服务器,目前作为网关或代理。 因此,它无法向客户端提供响应。
- HTTP 状态码 505(不支持 HTTP 版本): 服务器不支持请求中使用的 HTTP 方法。
- HTTP 状态码 506(变体也协商):鉴于 HTTP 允许资源的多个变体驻留在一个 URL 下,服务器无法决定提供哪个(最佳)版本作为响应。 这通常是由于服务器配置问题。
- HTTP 状态码 507(存储空间不足): 服务器无法存储成功完成请求所需资源的表示。
- HTTP 状态码 508(检测到循环): 服务器检测到无限循环,无法处理请求。
- HTTP 状态码 510(未扩展):服务器实现了额外的扩展,需要在请求头中指定,以便服务器实现它。
- HTTP 状态代码 511(需要网络身份验证):客户端必须提供身份验证,以便服务器可以授予客户端访问权限。