HTTP协议04-返回状态码
状态码职责是在客户端向服务器端发送请求时候,描述返回的请求结果。借助状态码,用户可以知道服务器是否正常处理了请求,还是出错了。
状态码的类别
| 类别 | 原因短语 | |
| 1XX | Informational(信息性状态码) | 接受的请求正在处理 |
| 2XX | Success(成功状态码) | 请求正常处理完毕 |
| 3XX | Redirection(重定向状态码) | 需要进行附加操作以完成请求 |
| 4XX | Client Error(客户端错误状态码) | 服务器无法处理请求 |
| 5XX | Server Error(服务器错误状态码) | 服务器处理请求出错 |
http虽然各种状态码加起来有60多种,但是常用的只有14种。
1)2xx成功 请求被正常处理
1.1 200 OK
表示从客户端发来的请求被服务器端正常处理了。
1.2 204 NO Content
表示从客户端发来的请求被服务器端正常处理,但是没有资源可返回,也就是响应报文中包含实体的主体部分。也不允许返回任何实体的主体,一般在只需要从客户端向服务器端发送信息,而对客户端不需要发送新消息内容的情况下使用,浏览器显示的页面不会发生更新。
1.3 206 Partial Content
该状态码表示客户端进行范围请求,而服务器成功执行了这部分的GET请求。响应报文中包含由Content-Range指定范围的实体内容
2)3XX重定向 服务器需要执行某些特殊的处理以正确处理请求
2.1 301 Moved Permanently
永久性重定向。该状态码表示请求的资源已被分配了新的URI,以后应使用资源现在所指的URI。
2.2 302 Found
临时性重定向。该状态码表示请求的资源已临时分配了新的URI,希望用户本次使用新的URI访问。
2.3 303 See Other
该状态码表示由于请求对应的资源存在着另一个URI,应使用GET方法定向获取请求的资源。
303和302有着相似的功能,但是303状态码明确表示客户端应当采用GET方法获取资源
ps:当301、302、303响应状态码返回时,几乎所有浏览器都会把POST改成GET,并删除请求报文内的主体,然后再次自动发起请求。301和302标准是禁止讲POST方法改成GET方法的,但实际使用时大家都这么做- -
2.4 304 Not Modified
改状态码表示客户端发送附带条件的请求时,服务器端允许请求访问资源,但因发生请求未满足条件的情况后,直接返回304 Not Modified(服务器端资源未改变,可直接使用客户端未过期的缓存),返回时不包含任何响应的主体部分。
附带条件的请求:是指使用GET方法请求报文中包含If-...开头的任一首部字段。
2.5 307 Temporary Redirect
临时重定向。和302有着相同的含义。307会遵照浏览器的标准,不会从POST变为GET。但是,对于处理响应时的行为,每种浏览器有可能出现不同的情况。
3)4XX客户端错误 表示客户端是发生错误的原因所在
3.1 400 Bad Request
该状态表示请求的报文中存在语法错误。当错误发生时,需修改请的内容后再次发送请求。另外浏览器会像对待200一样对待该状态码。
3.2 401 Unauthorized
该状态码表示发送的请求需要通过HTTP认证的认证信息。如果之前已进行一次请求,则表示用户认证失败。返回含有401的响应必须包含一个适用于被请求资源的www-Authenticate首部用以咨询用户信息。当浏览器初次接收到401响应,会弹出认证用的对话窗口。
3.3 403 Forbidden
该状态码表明对请求的资源的访问被服务器拒绝了。(一般是访问权限的问题)
3.4 404 Not Found
该状态码表示服务器上无法找到请求的资源。
4)5XX服务器错误 表示服务器本身发生错误
4.1 500 Internal Server Error
该状态码表明服务器在执行请求时发生了错误。可能是Web应用存在bug或临时故障。
4.2 503 Service Unavailable
该状态码表明服务器暂时处于超负荷或正在进行停机维修,现在无法处理请求。
状态码和状况的不一致
不少返回的状态码响应都是错误的,但是用户可能察觉不到这点,比如Web应用程序内部发生错误,状态码依然返回200 Ok,这种情况也经常遇见。
HTTP协议04-返回状态码的更多相关文章
- HTTP协议6之状态码--转
HTTP状态码,我都是现查现用. 我以前记得几个常用的状态码,比如200,302,304,404, 503. 一般来说我也只需要了解这些常用的状态码就可以了. 如果是做AJAX,REST,网络爬虫, ...
- HTTP 返回状态码
一.HTTP 超文本传输协议 HTTP 是基于客户端/服务端(C/S)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议. 一个HTTP "客户端"是一个应用程 ...
- HTTP 返回状态码说明
HTTP 返回状态码一.1xx - 信息提示 这些状态代码表示临时的响应.客户端在收到常规响应之前,应准备接收一个或多个 1xx 响应. • 100 - 继续. • 101 - 切换协议. 二.2xx ...
- libcurl库返回状态码解释与速查
libcurl库返回状态码解释与速查 CURLE_OK(0) 支持返回 CURLE_UNSUPPORTED_PROTOCOL(1) 你的URL传递给libcurl的使用协议,这libcurl的 ...
- http返回状态码含义
http返回状态码 http状态码 200 2开头的都表示这个请求发送成功,最常见的就是200,就代表这个请求是ok的,服务器也返回了. 300 3开头的代表重定向,最常见的是302,把这个请求重定向 ...
- zabbix自动发现 url 以及对http返回状态码监控实现 告警
2019-06-04 18:39:12 目的:批量监控业务URL的返回状态码,通过zabbix监控判断业务好坏. 1.zabbix安装 请查看此永久链接:https://www.cnblogs.com ...
- [面试题总结及扩展知识]HTTP协议返回状态码的问题
经常在网页中看到一些错误的返回信息,见一个查一个已经累感不爱,在2014年腾讯笔试题中也见到一道这样的问题,所以现在来总结一下: 腾讯2014面试题: 答案选B 附带一些http协议的错误代码: 当服 ...
- REST = HTTP动词(GET POST PUT DELETE)操作 + 服务器暴露资源URI,最后返回状态码(充分利用HTTP自身的特征,而不仅仅是把HTTP当作传输协议。Rest协议是面向资源的,SOAP是面向服务的),表现形式可以是JSON XML BIN,举例很清楚
好处是,操作系统或者浏览器,可以重复利用它们内置的缓存机制等等. 增删改查都是一个地址,具体靠http头部信息判断. 利用HTTP协议语义构建的语义化.可缓存的接口. URL定位资源,用HTTP动词( ...
- 9. http协议_响应状态码_页面渲染流程_路由_中间件
1. http协议 超文本传输协议 协议详细规定了 浏览器 和 万维网服务器 之间互相通信的规则 客户端与服务端通信时传输的内容我们称之为报文(请求报文.响应报文) 常见的发送 get 请求方式 在浏 ...
- http协议的各类状态码
http协议的状态码 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态码. 100(继续) 请求者应当继续提出请求.服务器返回此代码表示已收到请求的第一部分,正在等待其余部分. 101( ...
随机推荐
- 《Apache kafka实战》读书笔记-kafka集群监控工具
<Apache kafka实战>读书笔记-kafka集群监控工具 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如官网所述,Kafka使用基于yammer metric ...
- 15、JDBC-CallableStatement
一.存储过程 创建 CREATE DEFINER=CURRENT_USER PROCEDURE `adder`(IN a int, IN b int, OUT sum int) BEGIN DECLA ...
- JMX监控Hadoop的部分常用参数位置
近期版本get无法使用,可能使用了其他参数代替,但源码中已经去掉JMX部分,也没有给出替代接口,应该是不再额外实现了. NameNode DataNode HDFS Yarn HBase MapRed ...
- 关于CURL的初步认识
前言:你知道?这个CURL可以做爬虫的工作但是仅限于小型的爬虫.............. (一) CURL的认识 下面我觉得用图片来展示curl比较直观: 所谓的curl就是客户端访问了服务器1,那 ...
- 项目thymeleaf
官方文档:https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#link-urls 定义和引用片段 在我们的模板中,我们经常需 ...
- 在py文件中设置文件头
在写python文件的时候有时需要记录作者.创建时间等时间,因此可以给python文件设置文件头,这里以PyCharm为例介绍设置步骤: 1. 打开PyCharm,依次点击Setting-----Ed ...
- [Android] [putty连接Android设备] [Android设备网络调试]
file: system/core/adb/adb.c line: 921 /* for the device, start the usb transport if the ** android u ...
- sql -leetcode 178. Rank Scores
Score 很好得到: select Score from Scores order by Score desc; 要得到rank, 可以通过比较比当前Score 大的Score 的个数得到: sel ...
- 关于利用PHP访问MySql数据库的逻辑操作以及增删改查实例操作
PHP访问MySql数据库 <?php //造连接对象$db = new MySQLi("localhost","root","",& ...
- [C++]PAT乙级1004. 成绩排名 (20/20)
/* 1004. 成绩排名 (20) 读入n名学生的姓名.学号.成绩,分别输出成绩最高和成绩最低学生的姓名和学号. 输入格式:每个测试输入包含1个测试用例,格式为 第1行:正整数n 第2行:第1个学生 ...