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( ...
随机推荐
- python第二次周末大作业
题目 ''' HR人力资源管理. 1. 菜单: ("查看员⼯信息","添加员⼯信息", "修改员⼯信息", "删除员⼯信息&quo ...
- Eclipse 常用技巧及常见问题解决
文章目录 Eclipse默许函数折叠打开 Eclipse插件: win7屏蔽ctrl+alt+up/down快捷键/ (eclipse冲突) 去掉 eclipse 中自动生成的注释 //TODO 常见 ...
- HDU - 6394 Tree(树分块+倍增)
http://acm.hdu.edu.cn/showproblem.php?pid=6394 题意 给出一棵树,然后每个节点有一个权值,代表这个点可以往上面跳多远,问最少需要多少次可以跳出这颗树 分析 ...
- HDU 6345(子串查询 暴力)
题意是每组给定一个字符串,在有限查询次数内输出所要查询区间的字典序最小的子串个数. 字典序最小的子串,就是所查询区间中字典序最小的单个字符,问题就转化成了求一段区间内字典序最小的字符个数. 开始时盲目 ...
- MVC实用架构设计(三)——EF-Code First(1):Repository,UnitOfWork,DbContext
前言 终于到EF了,实在不好意思,最近有点忙,本篇离上一篇发布已经一个多星期了,工作中的小迭代告一段落,终于有点时间来继续我们的架构设计了,在这里先对大家表示歉意. 其实这段时间我并不是把这个系列给忘 ...
- 归并排序_JAVA
import java.util.Arrays; public class Main { public static void main(String[] args) { int[] a = { 6, ...
- weblogic安装错误记录
问题1:/opt/oraInventory路径无效(无法读取/写入/执行) 查看目录权限,发现此目录属于dba,如果用这个目录的话,可能会覆盖掉Oracle数据库相关的东西 再参照weblogic静默 ...
- Sql显示16进制
select cast(id as varbinary(4)) from tableTest
- 将.csv数据导入到mysql中
1.首先看一下我需要导入的数据: 用excel打开的时候显示: 用notepad++打开显示为: 2.使用notepad++打开改变字符集为UTF-8 3,建立表,表中的字段要和文件中的一致 3.执行 ...
- 九、文件IO——案例构建标准库
例子如下: mystdio.h #ifndef __MYSTDIO_H__ #define __MYSTDIO_H__ #include <sys/types.h> #define MYE ...