当我们从客户端向服务器发送请求时 
服务器向我们返回状态码 
状态码就是告诉我们服务器响应的状态 
通过它,我们就可以知道当前请求是成功了还是出现了什么问题 
状态码是由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请求,信息只存在于响应报文首部,因为它不会返回报文实体,只返回报文首部

204 No Content

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

206 Partial Content

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

3XX 重定向

301 Moved Permanently

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

302 Found

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

303 See Other

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

304 Not Modified

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

307 Temporary Redirect

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

4XX 客户端错误

400 Bad Request

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

401 Unauthorized

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

403 Forbidden

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

404 Not Found

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

5XX 服务器错误

500 Internal Server Error

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

503 Service Unavailable

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

总结

返回的状态码和状态不一致的情况是有可能发生得 
比如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 
      服务器超负载或停机维护

服务器返回的14种常见HTTP状态码的更多相关文章

  1. HTTP协议和几种常见的状态码

    前言:明知山有釜,偏向釜山行-----电影<釜山行> ------------------------------------------------------------------- ...

  2. 常见HTTP状态码(200、301、302、500等)

    HTTP状态码,它是用以表示网页服务器HTTP响应状态的3位数字代码.状态码的第一个数字代表了响应的五种状态之一. 1XX系列:指定客户端应相应的某些动作,代表请求已被接受,需要继续处理.由于 HTT ...

  3. 常见HTTP状态码

    常见HTTP状态码 200 OK 301 Moved Permanently 302 Found 304 Not Modified 307 Temporary Redirect 400 Bad Req ...

  4. 常见HTTP状态码大全

    我们经常会遇到404.500.302等提示,它们究竟是什么意思呢?除了这几个常见的状态码外,还有哪些我们没有遇到过的但有可能出现的状态码呢?网站的http状态对于网站维护人员来说是相当重要的,当网站出 ...

  5. 常见HTTP状态码及URL编码表

    常见HTTP状态码 1xx: 信息          (用于表示临时响应并需要请求者执行操作才能继续的状态代码) 消息: 描述: 100 Continue 服务器仅接收到部分请求,但是一旦服务器并没有 ...

  6. 常见HTTP状态码(200、301、302、500等)解说

    对网站管理工作者来说有个词不陌生,HTTP状态码,它是用以表示网页服务器HTTP响应状态的3位数字代码.状态码的第一个数字代表了响应的五种状态之一. 1XX系列:指定客户端应相应的某些动作,代表请求已 ...

  7. 常见HTTP状态码(200、301、302、500等) 释义

    对网站管理工作者来说有个词不陌生,HTTP状态码,它是用以表示网页服务器HTTP响应状态的3位数字代码.状态码的第一个数字代表了响应的五种状态之一. 1XX系列:指定客户端应相应的某些动作,代表请求已 ...

  8. HTTP常见响应状态码及解释、常用请求头及解释

    1.HTTP常见响应状态码及解释2XX Success(成功状态码) 200 表示从客户端发来的请求在服务器端被正常处理204 该状态码表示服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主 ...

  9. HTTP常见的状态码——面试题常考

    一些常见的状态码为:  200 - 服务器成功返回网页 400(错误请求)服务器不理解请求的语法. 404 - 请求的网页不存在 500(服务器内部错误)服务器遇到错误,无法完成请求. 503 - 服 ...

随机推荐

  1. HashMap resize导致死循环

    原文链接:https://blog.csdn.net/hll174/article/details/50915346 问题的症状 从前我们的Java代码因为一些原因使用了HashMap这个东西,但是当 ...

  2. C++在WINdow桌面绘制文字图形

    [起因] 最近碰到一个项目,需要在电脑左面显示一些信息,因此在网上找了一些资料,成功实现在桌面绘制信息. [代码] #include "stdafx.h" #include < ...

  3. springmvc htmlEscape标签的作用

    有些东西自己不知道就想要弄明白 唉   做项目 看人家项目中用到啦 不会 不知道 就百度啦 整理了一下 方便自己记忆 一.SpringMVC 表单元素标签 如下: <form:textarea ...

  4. Luogu P4095 [HEOI2013]Eden 的新背包问题 思维/动规

    当时一直在想前缀和...多亏张队提醒... 从1到n背次包,保存每一个状态下的价值,就是不要把第一维压掉:再从n到1背一次,同样记住每种状态: 然后询问时相当于是max(前缀+后缀),当然前缀后缀中间 ...

  5. P1060 开心的金明(动态规划背包问题)

    题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:"你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过NN元钱 ...

  6. P1029 最大公约数和最小公倍数问题(思维题)

    题目描述 输入22个正整数x_0,y_0(2 \le x_0<100000,2 \le y_0<=1000000)x0​,y0​(2≤x0​<100000,2≤y0​<=100 ...

  7. hdu6223 Infinite Fraction Path 2017沈阳区域赛G题 bfs加剪枝(好题)

    题目传送门 题目大意:给出n座城市,每个城市都有一个0到9的val,城市的编号是从0到n-1,从i位置出发,只能走到(i*i+1)%n这个位置,从任意起点开始,每走一步都会得到一个数字,走n-1步,会 ...

  8. python+selenium 使用jinkens构建时,无法打开浏览器(已解决)

    inkens 我不用的是war包,就是直接丢在tomcat webapps文件夹就能生效的.因为不是安装,所以网上说把jinkens的服务改为管理员启动是不行的.下面一步步来解决这个问题吧. 1.找到 ...

  9. window.open()总结

    今天找父页面和子页面调去问题. 父页面js 1.打开子页面 可以设置子页面长宽高和位置 win= window.open(url, "", "top=45,left=20 ...

  10. 事物及exec

    事物3要出不多讲: 1.BEGIN TRANSACTION--开启事务 2.COMMIT TRANSACTION--事务执行 3.ROLLBACK TRANSACTION--事务回滚 俩总捕捉事物的方 ...