HTTP状态码是什么意思?

 

HTTP状态码

当服务器收到某项请求时,例如,用户经过浏览器访问你的网页,服务器会向这个浏览器返回一个代码以响应请求。一个代码就称为:HTTP状态码。浏览器

一样道理,当搜索引擎的Robot(机器人)或Crawler(爬行器)抓取你的网页时,服务器也会返回HTTP状态码相应请求。缓存

此HTTP状态码提供关于请求状态的信息,告诉访问的浏览器、搜索引擎机器人:Baiduspider、Googlebot等关于你的网站和请求的网页的信息。服务器

HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码。它由 RFC 2616 规范定义的,并获得RFC 251八、RFC 281七、RFC 229五、RFC 277四、RFC 4918等规范扩展。ide

HTTP状态码的做用是:Web服务器用来告诉客户端,发生了什么事。网站

状态码位于HTTP Response 的第一行中,会返回一个”三位数字的状态码“和一个“状态消息”。 ”三位数字的状态码“便于程序进行处理, “状态消息”更便于人理解。ui

以下图,  当客户端请求一个不存在的URL的时候, Web服务器会返回 “HTTP/1.1 404 Not Found” 告诉用户/浏览器客户端。 服务器没法找到所请求的URL。搜索引擎

404状态码

HTTP状态码分类

HTTP状态码被分为五大类, 目前咱们使用的HTTP协议版本是1.1, 支持如下的状态码。随着协议的发展,HTTP规范中会定义更多的状态码。spa

小技巧:  假如你看到一个状态码518, 你并不知道具体518是什么意思。 这时候你只要知道518是属于(5XX,服务器错误就能够了)代理

  已定义范围 分类
1XX 100-101 信息提示
2XX 200-206 成功
3XX 300-305 重定向
4XX 400-415 客户端错误
5XX 500-505 服务器错误

常见的状态码

通常人只须要了解如下常见的状态码就够了, 若是你想了解更多, 请继续往下看。orm

200 OK 服务器成功处理了请求(这个是咱们见到最多的)
301/302 Moved Permanently(重定向)请求的URL已移走。Response中应该包含一个Location URL, 说明资源如今所处的位置
304 Not Modified(未修改)客户的缓存资源是最新的, 要客户端使用缓存
404 Not Found 未找到资源
501 Internal Server Error服务器遇到一个错误,使其没法对请求提供服务

HTTP状态码大全

1XX 信息性状态码

表示临时响应并须要请求者继续执行操做的状态代码。这些状态码是HTTP 1.1引入的。 对于这些状态码的价值还存在争论 (我我的历来没见过这些状态码, 也没有理解这些状态码。)

HTTP状态码 100 Continue(继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其他部分。
HTTP状态码 101 Switching Protocols(切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。

2XX 成功状态码

表示成功处理了请求的状态代码。客户端发起请求时, 这些请求一般都是成功的。服务器有一组用来表示成功的状态码,分别对应于不一样类型的请求。

HTTP状态码 200 OK(成功) 服务器已成功处理了请求。 一般,这表示服务器提供了请求的网页。(这个是咱们见到最多的)
HTTP状态码 201 Created(已建立) 请求成功而且服务器建立了新的资源。
HTTP状态码 202 Accepted(已接受) 服务器已接受请求,但还没有处理。
HTTP状态码 203 Non-Authoritative Information(非权威信息) 服务器已成功处理了请求,但返回的信息可能来自另外一来源。
HTTP状态码 204 No Content(没有内容) 服务器成功处理了请求,但没有返回任何内容。Response中包含一些Header和一个状态行, 但不包括实体的主题内容(没有response body)
HTTP状态码 205 Reset Content(重置内容) 服务器成功处理了请求,但没有返回任何内容。另外一个主要用于浏览器的代码。意思是浏览器应该重置当前页面上全部的HTML表单。
HTTP状态码 206 Partial Content(部份内容) 服务器成功处理了部分 GET 请求。

3XX 重定向状态码

表示要完成请求,须要进一步操做。 一般,这些状态代码用来重定向。重定向状态码用来告诉浏览器客户端,它们访问的资源已被移动, Web服务器发送一个重定向状态码和一个可选的Location Header, 告诉客户端新的资源地址在哪。

浏览器客户端会自动用Location中提供的地址,从新发送新的Request。 这个过程对用户来讲是透明的。

301和302 很是类似,一个是永久转移,一个是临时转移。(SEO中,搜索引擎若是碰到301,好比网页A用301重定向到网页B,搜索引擎能够确定网页A永久性改变地址,就会把网页B当作惟一有效目标)

302,303,307 是同样。这是由于302是HTTP 1.0定义的,HTTP1.1中使用303,307,同时又保留了302。(但在现实中,咱们仍是用302,我是没见过303和307)因此这一节,咱们只须要掌握302, 304 就能够了。

HTTP状态码 300 Multiple Choices(多项选择) 针对请求,服务器可执行多种操做。服务器可根据请求者 (user agent) 选择一项操做,或提供操做列表供请求者选择。
HTTP状态码 301 Moved Permanently(永久移除) 请求的网页已永久移动到新位置。Response中应该包含一个Location URL, 说明资源如今所处的位置。服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
HTTP状态码 302 Found(已找到/临时移动) 与状态码301相似。但这里的移除是临时的。 客户端会使用Location中给出的URL,从新发送新的HTTP request。服务器目前从不一样位置的网页响应请求,但请求者应继续使用原有位置来进行之后的请求。
HTTP状态码 303 See Other(查看其余位置) 相似302。请求者应当对不一样的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。
HTTP状态码 304 Not Modified(未修改) 自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。客户的缓存资源是最新的, 要客户端使用缓存
HTTP状态码 305 Use Proxy(使用代理) 请求者只能使用代理访问请求的网页。若是服务器返回此响应,还表示请求者应使用代理。代理的地址在Response 的Location中
HTTP状态码 306 未使用 这个状态码当前没使用
HTTP状态码 307 Temporary Redirect(临时重定向) 相似302。服务器目前从不一样位置的网页响应请求,但请求者应继续使用原有位置来进行之后的请求。

4XX客户端错误状态码

这些状态代码表示请求可能出错,妨碍了服务器的处理。有时客户端会发送一些服务器没法处理的东西,好比格式错误的Request, 或者最多见的是, 请求一个不存在的URL。

HTTP状态码 400 Bad Request(错误请求) 服务器不理解请求的语法。告诉客户端,它发送了一个错误的请求。
HTTP状态码 401 Unauthorized(未受权) 请求要求身份验证。对于须要登陆的网页,服务器可能返回此响应。须要客户端对本身认证
HTTP状态码 402 Payment Required(要求付款) 这个状态还没被使用,保留给未来用
HTTP状态码 403 Forbidden(禁止) 服务器拒绝请求。
HTTP状态码 404 Not Found(未找到) 服务器找不到请求的网页。
HTTP状态码 405 Method Not Allowed(方法禁用) 禁用请求中指定的方法。
HTTP状态码 406 Not Acceptable(不接受) 没法使用请求的内容特性响应请求的网页。
HTTP状态码 407 Proxy Authentication Required(须要代理受权) 此状态代码与 401(未受权)相似,但指定请求者应当受权使用代理。
HTTP状态码 408 Request Timeout(请求超时) 服务器等候请求时发生超时。
HTTP状态码 409 Conflict(冲突) 服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。
HTTP状态码 410 Gone(已删除) 与状态码404相似,若是请求的资源已永久删除,服务器就会返回此响应。
HTTP状态码 411 Length Required(须要有效长度) 服务器不接受不含有效内容长度标头字段的请求。
HTTP状态码 412 Precondition Failed(未知足前提条件) 服务器未知足请求者在请求中设置的其中一个前提条件。
HTTP状态码 413 Request Entity Too Large(请求实体过大) 服务器没法处理请求,由于请求实体过大,超出服务器的处理能力。
HTTP状态码 414 Request URI Too Long(请求的 URI 过长) 请求的 URI(一般为网址)过长,服务器没法处理。
HTTP状态码 415 Unsupported Media Type(不支持的媒体类型) 请求的格式不受请求页面的支持。
HTTP状态码 416 Requested Range Not Satisfiable(请求范围不符合要求) 若是页面没法提供请求的范围,则服务器会返回此状态代码。
HTTP状态码 417 Expectation Failed(未知足指望值) 服务器未知足”指望”请求标头字段的要求。

5XX服务器错误状态码

这些状态代码表示服务器在尝试处理请求时发生内部错误。这些错误多是服务器自己的错误,而不是请求出错。

HTTP状态码 500 Internal Server Error(服务器内部错误) 服务器遇到错误,没法完成请求。 HTTP状态码 501 Not Implemented(还没有实施) 服务器不具有完成请求的功能。 例如,服务器没法识别请求方法时可能会返回此代码。 HTTP状态码 502 Bad Gateway(错误网关) 服务器做为网关或代理,从上游服务器收到无效响应。 HTTP状态码 503 Service Unavailable(服务不可用) 服务器目前没法使用(因为超载或停机维护)。 一般,这只是暂时状态。 HTTP状态码 504 Gateway Timeout(网关超时) 与状态吗408相似,可是响应来自网关或代理,此网关或代理在等待另外一台服务器的响应时出现了超时。 HTTP状态码 505 HTTP Version Not Supported(HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。有些服务器不支持HTTP早期的HTTP协议版本,也不支持过高的协议版本

相关文章
相关标签/搜索