文档章节

HTTP状态码是什么意思?

 北方人在上海
发布于 2016/05/17 16:27
字数 2886
阅读 72
收藏 6
点赞 2
评论 0

 

HTTP状态码

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

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

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

HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码。它由 RFC 2616 规范定义的,并得到RFC 2518、RFC 2817、RFC 2295、RFC 2774、RFC 4918等规范扩展。

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

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

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

404状态码

HTTP状态码分类

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

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

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

常见的状态码

一般人只需要了解以下常见的状态码就够了, 如果你想了解更多, 请继续往下看。

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协议版本,也不支持太高的协议版本

© 著作权归作者所有

共有 人打赏支持
粉丝 22
博文 187
码字总数 265578
作品 0
浦东
HTTP协议 状态码详解

HTTP状态码,我都是现查现用。 我以前记得几个常用的状态码,比如200,302,304,404, 503。 一般来说我也只需要了解这些常用的状态码就可以了。 如果是做AJAX,REST,网络爬虫,机器人等程序...

hejunyi1204 ⋅ 2014/10/21 ⋅ 0

HTTP协议 状态码详解

http://www.cnblogs.com/TankXiao/archive/2013/01/08/2818542.html#code4xx HTTP状态码,我都是现查现用。 我以前记得几个常用的状态码,比如200,302,304,404, 503。 一般来说我也只需要...

hejunyi1204 ⋅ 2014/05/16 ⋅ 0

HTTP请求返回415错误码定位解决

今天在工作中,发现我再调用外部API接口的时候,发现一个奇怪的问题,就是我Eclipse中写代码调用外部API接口时返回HTTP状态码是415,但是我将相同的报文放在HttpRequester里面请求的时候却又...

andamajing ⋅ 2017/10/29 ⋅ 0

http状态码是什么,有什么用,在哪里查看,分别代表什么意思?

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

OB丶Koro1 ⋅ 2017/04/27 ⋅ 0

Web前端基础【4】--HTTP标准

image HTTP协议(超文本传输协议),是用于从www服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,减少网络传输。 一:HTTP请求过程 HTTP协议采取的是请求响应模型:即客户...

爱吃西瓜的番茄酱 ⋅ 2017/11/09 ⋅ 0

Android网络编程(二):HTTP协议报文基本结构

HTTP协议属于TCP/IP中的应用层,用于客户端与服务端之间的通信,客户端请求访问文本或图像等资源,服务器端则提供资源响应,HTTP协议中,必定是客户端先发起请求,服务端在未收到请求之前不会...

C6C ⋅ 2017/05/26 ⋅ 0

HTTP协议之http状态码详解

HTTP状态码,我都是现查现用。 我以前记得几个常用的状态码,比如200,302,304,404, 503。一般来说我也只需要了解这些常用的状态码就可以了。 如果是做AJAX,REST,网络爬虫,机器人等程序...

大圈 ⋅ 2015/09/02 ⋅ 1

nginx模块--with-http_realip_module

分享下 nginx模块--with-httprealipmodule nginx官网给出的模块解释都是英文用翻译软件呢,总有误差 这边最近有用到这个模块给大家分享下 这个模块主要功能就是 在nginx访问日志中去除代理I...

kevinzhang91 ⋅ 2017/12/25 ⋅ 0

配置nginx防止被盗链,提高资源利用率

2016年7月29日 nginx访问日志报大量这种,经查看发现都是搜狗360QQ的图片盗链 49.84.236.135 - - [29/Jul/2016:11:35:58 +0800] "GET/upload/2015_06/forum.php HTTP/1.1" 302 160 "http://p......

kevinzhang91! ⋅ 04/26 ⋅ 0

http状态码304什么意思

一、http状态码304的理解 1、如果客户端在请求一个文件的时候,发现自己缓存的文件有 Last Modified ,那么在请求中会包含 If Modified Since,这个时间就是缓存文件的 Last Modified 。因此...

学习也休闲 ⋅ 2015/09/15 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

如何解决s权限位引发postfix及crontab异常

一、问题现象 业务反馈某台应用服务器,普通用户使用mutt程序发送邮件时,提示“postdrop warning: mail_queue_enter: create file maildrop/713410.6065: Permission denied”,而且普通用法...

问题终结者 ⋅ 30分钟前 ⋅ 0

Unable to load database on disk

由于磁盘空间满了以后,导致zookeeper异常退出,清理磁盘空间后,zk启动报错,信息如下: 2018-06-25 17:18:46,904 INFO org.apache.zookeeper.server.quorum.QuorumPeerConfig: Reading co...

刀锋 ⋅ 50分钟前 ⋅ 0

css3 box-sizing:border-box 实现div一行多列

<!DOCTYPE html><html><head><style> div.container{ background:green; padding:10px 10px;}div.box{box-sizing:border-box;-moz-box-sizing:border-box; /* Fir......

qimh ⋅ 55分钟前 ⋅ 0

Homebrew简介和基本使用

一、Homebrew是什么 Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径...

说回答 ⋅ 今天 ⋅ 0

文件压缩和打包zip、tar

第六章 文件压缩和打包 6.5 zip压缩工具 zip命令可以用来解压缩文件,或者对文件进行打包操作。zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有“.zip”扩展名的压缩文件。 注意:...

弓正 ⋅ 今天 ⋅ 0

vuex

一、状态对象如何赋值给内部对象。三种方式: 1、使用computed赋值,一定要写this,不然找不到$store。 computed:{ count(){ return this.$store.state.count; }} 2、通...

大美琴 ⋅ 今天 ⋅ 0

javaScript 设计模式

1、构造函数模式 ` /** 构造一个动物的函数 */ function Animal(name, color){ this.name = name; this.color = color; this.getName = function(){ return this.name; } } // 实例一个对象 ......

fangPeng_ ⋅ 今天 ⋅ 0

日常嘚瑟:TeamCity构建中解压和打包tar

要弄一个新的构建,很简单,从两个构建的tar格式Artifact中分别取一部分,重新打一个tar。 所以,我去写个脚本用curl下载两个依赖的Artifact,然后解压移动重新打个tar? 开什么玩笑,我的技...

谷永权 ⋅ 今天 ⋅ 0

Istio官方文档中文版

阅读目录 Istio官方文档中文版 回到目录 Istio官方文档中文版 http://istio.doczh.cn/ https://istio.io/docs/concepts/what-is-istio/goals.html 为什么要使用Istio? 在从单体应用程序向分...

xiaomin0322 ⋅ 今天 ⋅ 0

CentOS 7 Omnibus 包安装 GitLab 并汉化记录

系统环境 操作系统:CentOS 7GitLab:gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm 下载Omnibus安装包 使用国内镜像加速下载地址 # wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el......

admin_qing ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部