HTTP 状态码详解

摘要:当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。

当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含 HTTP 状态码的信息头(server header)用以响应浏览器的请求。

HTTP 状态码的英文为 HTTP Status Code,下面是常见的 HTTP 状态码:

  • 200 - 请求成功
  • 301 - 资源(网页等)被永久转移到其它URL
  • 404 - 请求的资源(网页等)不存在
  • 500 - 内部服务器错误

HTTP 状态码

HTTP 状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP 状态码共分为 5 种类型:
分类 分类描述
1** 信息,服务器收到请求,需要请求者继续执行操作
2** 成功,操作被成功接收并处理
3** 重定向,需要进一步的操作以完成请求
4** 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生了错误

1xx(临时响应)

表示临时响应并需要客户端继续执行操作的状态代码。

代码 状态 说明
100 Continue(继续) 服务器收到了请求的起始部分,正在等待其余部分,客户端应该继续请求。
101 Switching Protocols(切换协议) 服务器根据客户端请求切换协议,切换到更高级的协议。
102 Processing(继续执行) 由 WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行。

2xx(成功)

表示操作被成功接收并处理的状态代码。

代码 状态 说明
200 成功 请求成功,一般用于 GET 与 POST 请求。
201 Created(已创建) 请求成功并且服务器创建了新的资源。
202 Accepted(已接受) 服务器已接受请求,但尚未处理。
203 Non-Authoritative Information(非授权信息) 服务器已成功处理了请求,但返回的 meta 信息不是来自原始服务器,而是来自资源的副本。
204 No Content(无内容) 服务器成功处理了请求,但未返回内容。
205 Reset Content(重置内容) 服务器成功处理了请求,浏览器应该重置当前页面上所有的HTML表单。
206 Partial Content(部分内容) 服务器成功处理了部分 GET 请求。
207 Multi-Status(多种状态) 由 WebDAV(RFC 2518) 扩展的状态码,代表之后的消息体将是一个 XML 消息,并且可能依照之前子请求数量的不同,包含一系列独立的响应代码。

3xx(重定向)

表示重定向需要进一步的操作以完成请求的状态代码。

代码 状态 说明
300 Multiple Choices(多项选择) 针对请求,服务器可执行多种操作。服务器可根据客户端 (user agent) 选择一项操作,或提供操作列表供客户端选择。
301 Moved Permanently(永久移除) 请求的资源已被永久的移动到新 URI,返回信息会包括新的 URI,浏览器会自动定向到新 URI。
302 Found(临时移动) 与 301 类似,但资源只是临时被移动,客户端应继续使用原有 URI。
303 See Other(查看其他位置) 客户端应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。
304 Not Modified(未修改) 自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容,要客户端使用缓存。
305 Use Proxy(使用代理) 所请求的资源必须通过代理访问,代理的地址在 Response 的 Location 中。
306 Unused(未使用) 已经被废弃的 HTTP 状态码,不再被使用。
307 Temporary Redirect(临时重定向) 与 302 类似,服务器目前从不同位置的网页响应请求,但客户端应继续使用原有位置来进行以后的请求。

4xx(请求错误)

表示客户端请求错误的状态代码。

代码 状态 说明
400 Bad Request(错误请求) 客户端请求的语法错误,服务器无法理解。
401 Unauthorized(未授权) 请求要求用户的身份验证,对于需要登录的网页,服务器可能返回此响应。
402 Payment Required(要求付款) 这个状态还没被使用,保留给将来用。
403 Forbidden(禁止) 服务器拒绝请求。
404 Not Found(未找到) 服务器无法根据客户端的请求找到资源(网页)。
405 Method Not Allowed(方法禁用) 客户端请求中的方法被禁止。
406 Not Acceptable(无法接受) 服务器无法根据客户端请求的内容特性完成请求。
407 Proxy Authentication Required(需要代理授权) 与 401(未授权)类似,但客户端应当使用代理进行授权。
408 Request Timeout(请求超时) 服务器等待客户端发送的请求时间过长,超时。
409 Conflict(冲突) 服务器在完成请求时发生冲突,服务器必须在响应中包含有关冲突的信息。
410 Gone(不存在) 服务器曾经有这个资源,现在没有了,与状态码 404 类似。
411 Length Required(需要有效长度) 服务器不接受不含 Content-Length 有效内容长度标头字段的请求。
412 Precondition Failed(未满足前提条件) 服务器未满足客户端在请求中设置的其中一个前提条件。
413 Request Entity Too Large(请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。
414 Request URI Too Long(请求URI过长) 请求的 URI(通常为网址)过长,服务器无法处理。
415 Unsupported Media Type(不支持的媒体类型) 服务器无法处理请求附带的媒体格式。
416 Requested Range Not Satisfiable(请求范围不符合要求) 客户端请求的范围无效。
417 Expectation Failed(未满足期望值) 服务器无法满足 Expect 的请求头信息。
421 Misdirected Request(连接过多) 从当前客户端所在的 ip 地址到服务器的连接数超过了服务器许可的最大范围。通常,这里的 ip 地址指的是从服务器上看到的客户端地址(比如用户的网关或者代理服务器地址)。在这种情况下,连接数的计算可能涉及到不止一个终端用户。
422 Unprocessable Entity(错误实体) 请求格式正确,但是由于含有语义错误,无法响应。(RFC 4918 WebDAV)
423 Locked(锁定) 当前资源被锁定。(RFC 4918 WebDAV)
424 Failed Dependency(错误接洽关系) 由于之前的某个请求发生的错误,导致当前请求失败,例如 PROPPATCH。(RFC 4918 WebDAV)
425 Too Early(无序集合) 在 WebDav Advanced Collections 草案中定义,但是未出现在《WebDAV 顺序集协议》(RFC 3658)中。
426 Upgrade Required(进级请求) 客户端应当切换到 TLS/1.0。(RFC 2817)
428 Precondition Required(要求先决条件) 先决条件是客户端发送 HTTP 请求时,如果想要请求能成功必须满足一些预设的条件。
429 Too Many Requests(太多请求) 当你需要限制客户端请求某个服务数量时,该状态码就很有用,也就是请求速度限制。
431 Request Header Fields Too Large(请求头字段太大) 某些情况下,客户端发送 HTTP 请求头会变得很大,那么服务器可发送 431 Request Header Fields Too Large 来指明该问题。
451 Unavailable For Legal Reasons(因法律原因不可用) 由于法律原因产生的后果而被官方拒绝访问。

5xx(服务器错误)

表示服务器错误的状态代码。

代码 状态 说明
500 Internal Server Error(服务器内部错误) 服务器遇到错误,无法完成请求。
501 Not Implemented(未实现) 服务器不支持请求的功能,无法完成请求。
502 Bad Gateway(网关故障) 服务器作为网关或代理,从上游服务器收到无效响应。
503 Service Unavailable(服务不可用) 服务器目前无法使用(由于超载或停机维护)。通常,这只是暂时状态。
504 Gateway Timeout(网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。
505 HTTP Version Not Supported(HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。
506 Variant Also Negotiates(变体协商) 由《透明内容协商协议》(RFC 2295)扩展,代表服务器存在内部配置错误:被请求的协商变元资源被配置为在透明内容协商中使用自己,因此在一个协商处理中不是一个合适的重点。
507 Insufficient Storage(存储不足) 服务器无法存储完成请求所必须的内容。这个状况被认为是临时的。WebDAV (RFC 4918)
509 Bandwidth Limit ExceededBandwidth Limit Exceeded(超过带宽限制) 服务器达到带宽限制。这不是一个官方的状态码,但是仍被广泛使用。
510 Not Extended(不可拓展) 获取资源所需要的策略并没有满足。(RFC 2774)
511 Network Authentication Required(要求网络认证) 如果你频繁使用笔记本和智能手机,你可能会注意到大量的公用 WIFI 服务要求你必须接受一些协议或者必须登录后才能使用。

6xx

代码 状态 说明
600 Unparseable Response Headers(响应头无法解析) 源站没有返回响应头部,只返回实体内容

分节内容

版权声明:本文为博主原创文章,未经博主允许不得转载。http://www.dedenotes.com/html/http-status.html
(1)
打赏 微信扫一扫 微信 支付宝 QQ 扫码打赏

防止表单重复提交的 4 种方法

Dedenotes 赞(3)

平时开发的项目中可能会出现下面这些情况:由于用户误操作,多次点击表单提交按钮;由于网速等原因造成页面卡顿,用户重复刷新提交页面;黑客或恶意用户使用 Postman 等工具重复恶意提交表单(攻击网站)。

HTTP消息结构 HTTP请求报文和响应报文的格式

Dedenotes 赞(3)

HTTP 协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,基于 TCP/IP 通信协议来传递数据(HTML 文件, 图片文件, 查询结果等),所有的 WWW(World Wide Web)文件都必须遵守这个标准。

meta

Dedenotes 赞(3)

meta 是 html 语言 head 区的一个辅助性标签,位于文档的头部,不包含任何内容,标签的属性定义了与文档相关联的名称/值对。meta 标签可提供相关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。