各种http报错的报错的状态码的分析

当我们从客户端向服务器发送请求时 
服务器向我们返回状态码 
状态码就是告诉我们服务器响应的状态 
通过它,我们就可以知道当前请求是成功了还是出现了什么问题 
状态码是由3位数字和原因短语组成的(比如最常见的:200 OK) 
其中第一位数字表示响应类别,响应类别从1到5分为五种 
add:其实我查阅资料发现还有一个6打头的一个 600 Unparseable Response Headers 
表示服务器没有返回响应头部,只返回实体内容,也算做服务器错误状态码吧,不过绝对不常见

状态码 响应类别 原因短语
1XX 信息性状态码(Informational) 服务器正在处理请求
2XX 成功状态码(Success) 请求已正常处理完毕
3XX 重定向状态码(Redirection) 需要进行额外操作以完成请求
4XX 客户端错误状态码(Client Error) 客户端原因导致服务器无法处理请求
5XX 服务器错误状态码(Server Error) 服务器原因导致处理请求出错

状态码响应类别的的定义是必须遵守的,后面的两个数字服务器自己DIY也没什么问题 
RFC2616(用来指定HTTP协议标准的文档)标准定义的就有四十多种,加上扩展能达到六十种 
不过常见的大概只有十四种,下面我来谈谈这些有代表性的14种HTTP状态码

2XX 成功

200 OK

表示请求被服务器正常处理 
最常见的就是这个了 
随着这个状态码返回的信息跟你的请求方法有关 
比如GET请求,请求的资源会作为响应实体返回 
而HEAD请求,信息只存在于响应报文首部,因为它不会返回报文实体,只返回报文首部

200 OK

204 No Content

表示请求已成功处理,但是没有内容返回(就应该没有内容返回的状况) 
也就是返回的响应报文中没有报文实体(其实是没有报文实体的主体部分) 
浏览器向服务器发送请求后收到了204,那么浏览器页面不会发生更新 
一般用在只是客户端向服务器发送信息,而服务器不用向客户端返回什么信息的情况

204 No Content

206 Partial Content

表示服务器已经完成了部分GET请求(客户端进行了范围请求) 
响应报文中包含Content-Range指定范围的实体内容

206 Partial Content

3XX 重定向

301 Moved Permanently

永久重定向,表示请求的资源已经永久的搬到了其他位置 
就是说资源已经被分配了新的URI 
新的URI应该提示在响应报文的Location首部字段 
只要不是HEAD请求,响应实体应该包含新URI的超链接和简短的说明

301 Moved Permanently

302 Found

临时重定向,表示请求的资源临时搬到了其他位置 
请求的资源暂时被配到到了新的URI 
和301很像,只不过资源是临时移动,资源在将来可能还会改变 
同样地,新的临时URI应该提示在响应报文的Location首部字段 
只要不是HEAD请求,响应实体应该包含新URI的超链接和简短的说明

302 Found

303 See Other

表示请求资源存在另一个URI,应使用GET定向获取请求资源 
303功能与302一样,区别只是303明确客户端应该使用GET访问 
(很多HTTP/1.1之前的浏览器不能理解303,但是大家都把302当303对待,使用GET请求新URI)

303 See Other

304 Not Modified

表示客户端发送附带条件的请求(GET方法请求报文中的IF…)时,条件不满足 
返回304时,不包含任何响应主体 
虽然304被划分在3XX,但和重定向一毛钱关系都没有

304 Not Modified

307 Temporary Redirect

临时重定向,和302有着相同含义 
尽管302标准禁止POST变为GET,但没人听他的 
而307就会遵照标准,不会从POST变为GET 
但处理响应行为,各个浏览器可能不同

307 Temporary Redirect

4XX 客户端错误

400 Bad Request

表示请求报文存在语法错误或参数错误,服务器不理解 
服务器不应该重复提交这个请求 
需要修改请求内容后再次发送

400 Bad Request

401 Unauthorized

表示发送的请求需要有HTTP认证信息或者是认证失败了 
返回401的响应必须包含一个适用于被请求资源的WWW-Authenticate首部以质询用户信息 
浏览器初次接受401时,会弹出认证窗口

401 Unauthorized

403 Forbidden

表示对请求资源的访问被服务器拒绝了 
服务器可以对此作出解释,也可以不解释 
想说明的话可以在响应实体的主体部分描述原因 
比如说你可能没有访问权限

403 Forbidden

404 Not Found

表示服务器找不到你请求的资源 
也有可能服务器就是不想给你然后骗你找不到(⊙ˍ⊙) 
而且大多服务器都是这么玩这个状态码的

404 Not Found

5XX 服务器错误

500 Internal Server Error

表示服务器执行请求的时候出错了 
可能是Web应用有bug或临时故障 
更有可能是服务器源代码有bug…

500 Internal Server Error

503 Service Unavailable

表示服务器超负载或正停机维护,无法处理请求 
如果服务器知道还需要多长时间,就写入Retry-After首部字段返回

503 Service Unavailable

总结

返回的状态码和状态不一致的情况是有可能发生得 
比如Web应用程序内部错误,但仍然返回 200 OK

 

    • 200 OK 
      请求正常处理完毕
    • 204 No Content 
      请求成功处理,没有实体的主体返回
    • 206 Partial Content 
      GET范围请求已成功处理
    • 301 Moved Permanently 
      永久重定向,资源已永久分配新URI
    • 302 Found 
      临时重定向,资源已临时分配新URI
    • 303 See Other 
      临时重定向,期望使用GET定向获取
    • 304 Not Modified 
      发送的附带条件请求未满足
    • 307 Temporary Redirect 
      临时重定向,POST不会变成GET
    • 400 Bad Request 
      请求报文语法错误或参数错误
    • 401 Unauthorized 
      需要通过HTTP认证,或认证失败
    • 403 Forbidden 
      请求资源被拒绝
    • 404 Not Found 
      无法找到请求资源(服务器无理由拒绝)
    • 500 Internal Server Error 
      服务器故障或Web应用故障
    • 503 Service Unavailable 
      服务器超负载或停机维护

 

转自:http://www.cnblogs.com/phpfeng/p/9247142.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


每个HTTP请求和响应都会带有相应的头部信息。默认情况下,在发送XHR请求的同时,还会发送下列头部信息: Accept:浏览器能够处理的内容类型 Accept-Charset:浏览器能够显示的字符集
"Markdown自动生成目录" "使用npm语法生成" "1、安装npm" "2、安装doctoc插件" "
当我们从客户端向服务器发送请求时 服务器向我们返回状态码 状态码就是告诉我们服务器响应的状态 通过它,我们就可以知道当前请求是成功了还是出现了什么问题 状态码是
原理 介绍 哈希表(Hash table,也叫散列表), 是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映
一 共享秘钥 1.1 概念 共享秘钥和我们生活中同一把锁的钥匙概念类似,对同一把锁来说,加锁时使用什么钥匙,解锁也必须使用同样的钥匙。 1.2 共享秘钥在HTTP传输中的缺点 以共享密钥方式加密时必须
正向代理的概念 正向代理,也就是传说中的代理,他的工作原理就像一个跳板,简单的说,我是一个用户,我访问不了某网站,但是我能访问一个代理服务器这个代理服务器呢,他能访问那个我不能访问的网站于是我先连上代
如果你是网站的开发者或维护者,就不得不重视盗链的问题了。如果你刚刚开发完一个没有防盗链的带有文件下载功能的网站,挂上internet,然后上传几个时下非常热门的软件或电影并在网站内公布下载地址,让MS
select,poll,epoll区别总结 select,poll,epoll都是I/O多路复用。I/O多路复用就是通过一种机制,可以监测多个描述符,一旦某个描述就绪(一般是读或者写),能够通知程序进
PS: https就是http和TCP之间有一层SSL层,这一层的实际作用是防止钓鱼和加密。防止钓鱼通过网站的证书,网站必须有CA证书,证书类似于一个解密的签名。另外是加密,加密需要一个密钥交换算法,
一、什么是http协议 HTTP是一个应用层协议,无状态的,端口号为80。主要的版本有1.0/1.1/2.0. HTTP/1.* 一次请求-响应,建立一个连接,用完关闭; HTTP/1.1 串行化单线
host文件的工作原理及应用 Hosts文件是一个用于存储计算机网络中节点信息的文件,它可以将主机名映射到相应的IP地址,实现DNS的功能,它可以由计算机的用户进行控制。 一、Hosts文件基本介绍
HTTP 2.0是在SPDY(An experimental protocol for a faster web, The Chromium Projects)基础上形成的下一代互联网通信协议。HTT
虚拟地址和物理地址 第一层理解 1、每个进程都有自己独立的4g内存空间,每个进程的内存空间都具有类似的结构。 2、一个新进程建立的时候,将会建立自己的内存空间,此进程的数据,代码等数据从磁盘拷贝到自己
0x00 前言 发现自己学习python已经有半个月了,也开发了自己的一些渗透的小脚本,但觉得还是不够,我个人觉得工具和脚本还有框架是个本质上的区别。脚本的话,不会考虑到其他的一些因素,例如报错和交互
0x00 前言 由于昨天520,今天又是521,我被朋友圈和qq空间给刷屏了,都在秀对象。一气之下决定把我上次写的nc拿出来使用类进行重构,多实例化几个对象,这下子我也有对象了。 0x01 一些小插曲
upload labs通关 0x00 前言 这段时间一直在忙,没时间来更新文章,这里就写篇upload labs的通关手册吧,现在包括网上也有很多upload通关手册,但是在这里还是想自己去写一篇,来
0x00 前言 介于这段时间比较忙,所以博客的更新也比较慢。本来想前几天就发这个mssql数据库的,但是因为mssql的结构比较复杂,利用方式也比较多,所以又去深入研究了一下mssql的数据库结构和各
0x00 了解数据库 数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。 数据库是以一定方式储存在一起、能与多个用户共享、
0x00 前言 现在access的站,比较少,有的话也是小型网站在用,因为access的性能比较差,多人访问都能卡死,所以很多网站都很少会采用access的数据库搭建。但是该学的我们还是得学。 0x0
记一次某企业实战 0x00 前言 近段时间来也没怎么更新过博客,在这里就来水篇文章吧。 前段时间一直在做项目,也来分享并且记录一下自己的一些成果,和一些小思路。 0x01 信息收集 渗透的第一步肯定是