状态码职责是在客户端向服务器端发送请求时候,描述返回的请求结果。借助状态码,用户可以知道服务器是否正常处理了请求,还是出错了。

状态码的类别

  类别 原因短语
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-返回状态码的更多相关文章

  1. HTTP协议6之状态码--转

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

  2. HTTP 返回状态码

    一.HTTP 超文本传输协议 HTTP 是基于客户端/服务端(C/S)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议. 一个HTTP "客户端"是一个应用程 ...

  3. HTTP 返回状态码说明

    HTTP 返回状态码一.1xx - 信息提示 这些状态代码表示临时的响应.客户端在收到常规响应之前,应准备接收一个或多个 1xx 响应. • 100 - 继续. • 101 - 切换协议. 二.2xx ...

  4. libcurl库返回状态码解释与速查

    libcurl库返回状态码解释与速查     CURLE_OK(0) 支持返回 CURLE_UNSUPPORTED_PROTOCOL(1) 你的URL传递给libcurl的使用协议,这libcurl的 ...

  5. http返回状态码含义

    http返回状态码 http状态码 200 2开头的都表示这个请求发送成功,最常见的就是200,就代表这个请求是ok的,服务器也返回了. 300 3开头的代表重定向,最常见的是302,把这个请求重定向 ...

  6. zabbix自动发现 url 以及对http返回状态码监控实现 告警

    2019-06-04 18:39:12 目的:批量监控业务URL的返回状态码,通过zabbix监控判断业务好坏. 1.zabbix安装 请查看此永久链接:https://www.cnblogs.com ...

  7. [面试题总结及扩展知识]HTTP协议返回状态码的问题

    经常在网页中看到一些错误的返回信息,见一个查一个已经累感不爱,在2014年腾讯笔试题中也见到一道这样的问题,所以现在来总结一下: 腾讯2014面试题: 答案选B 附带一些http协议的错误代码: 当服 ...

  8. REST = HTTP动词(GET POST PUT DELETE)操作 + 服务器暴露资源URI,最后返回状态码(充分利用HTTP自身的特征,而不仅仅是把HTTP当作传输协议。Rest协议是面向资源的,SOAP是面向服务的),表现形式可以是JSON XML BIN,举例很清楚

    好处是,操作系统或者浏览器,可以重复利用它们内置的缓存机制等等. 增删改查都是一个地址,具体靠http头部信息判断. 利用HTTP协议语义构建的语义化.可缓存的接口. URL定位资源,用HTTP动词( ...

  9. 9. http协议_响应状态码_页面渲染流程_路由_中间件

    1. http协议 超文本传输协议 协议详细规定了 浏览器 和 万维网服务器 之间互相通信的规则 客户端与服务端通信时传输的内容我们称之为报文(请求报文.响应报文) 常见的发送 get 请求方式 在浏 ...

  10. http协议的各类状态码

    http协议的状态码 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态码. 100(继续) 请求者应当继续提出请求.服务器返回此代码表示已收到请求的第一部分,正在等待其余部分. 101( ...

随机推荐

  1. Hbase_02、Hbase的常用的shell命令&Hbase的DDL操作&Hbase的DML操作(转)

    阅读目录 前言 一.hbase的shell操作 1.1启动hbase shell 1.2执行hbase shell的帮助文档 1.3退出hbase shell 1.4使用status命令查看hbase ...

  2. 【JAVA】使用IntelliJ IDEA创建Java控制台工程

    1.File->New->Project 2.选择Java,下一步 3.模板有两个:Command Line App和Java Hello World,没有太大区别 4.命名: 5.结果:

  3. Windows 运行库

    Microsoft Visual C++ 2005 Redistributable - 8.0.61001http://download.microsoft.com/download/8/B/4/8B ...

  4. 16、JDBC-DBUtils封装

    使用DBUtils写个通用CURD小工具 依赖配置 pom.xml <?xml version="1.0" encoding="UTF-8"?> & ...

  5. MassTransit 学习

    http://blog.csdn.net/starfd/article/details/50973124

  6. STM32学习笔记:【002】BIN文件通过ST-LINK烧录STM32芯片

    以下提供2种下载方式 KEIL编译下载 KEIL 5 在开发中还算是比较强大的一种平台.在开发中通过编译再下载会显得很方便. 尽管这个是老生常谈的问题,但还是在这里补全这个设置步骤 1.点击“魔法棒” ...

  7. java.io.OutputStream & java.io.FileOutputStream

    java.io.OutputStream & java.io.FileOutputStream 1.Java.io.OutputStream(字节输出流) 字节输出流,这是一个抽象类,是表示输 ...

  8. idea 创建运行web项目时,报错: Can not issue executeUpdate() for SELECTs解决方案

    最近在做一个Web课程设计的时候遇到了如下的问题. java.sql.SQLException: java.lang.RuntimeException: java.sql.SQLException: ...

  9. GCC编译器原理(一)03------GCC 工具:gprof、ld、libbfd、libiberty 和libopcodes

    1.3.7 gprof:性能分析工具 参考文档:https://www.cnblogs.com/andashu/p/6378000.html gprof是GNU profile工具,可以运行于linu ...

  10. python3.x与2.x区别

    1.性能 Py3.0运行 pystone benchmark的速度比Py2.5慢30%.Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可 以取得很好的优化结果. Py3.1性能比Py2 ...