目录

一、2xx——成功处理请求

1.1 200 OK

1.2 204 No Content

1.3 206 Partial Content

二、3xx——重定向

2.1 301 Moved Permanently

2.2 302 Found

2.3 303 See Other

2.4 304 Not Modified

2.5 307 Temporary Redirect

三、4xx——客户端错误

3.1 400 Bad Request

3.2 401 Unauthorized

3.3 403 Forbidden

3.4 404 Not Found

四、5xx——服务器错误

4.1 500 Internal Server Error

4.2 503 Service Unavailable

五、状态码和状况的不一致


一、2xx——成功处理请求

2XX 的响应结果表明请求被正常处理了。

1.1 200 OK

表示从客户端发来的请求在服务器端被正常处理了。

1.2 204 No Content

该状态码代表服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分。另外,也不允许返回任何实体的主体。比如,当从浏览器发出请求处理后,返回 204 响应,那么浏览器显示的页面不发生更新。

一般在只需要从客户端往服务器发送信息,而对客户端不需要发送新信息内容的情况下使用。

1.3 206 Partial Content

该状态码表示客户端进行了范围请求,而服务器成功执行了这部分的GET 请求。响应报文中包含由 Content-Range 指定范围的实体内容。

二、3xx——重定向

3XX 响应结果表明浏览器需要执行某些特殊的处理以正确处理请求。

2.1 301 Moved Permanently

永久性重定向。该状态码表示请求的资源已被分配了新的 URI,以后应使用资源现在所指的 URI。也就是说,如果已经把资源对应的 URI保存为书签了,这时应该按 Location 首部字段提示的 URI 重新保存。

2.2 302 Found

临时性重定向。该状态码表示请求的资源已被分配了新的 URI,希望用户(本次)能使用新的 URI 访问。和 301 Moved Permanently 状态码相似,但 302 状态码代表的资源不是被永久移动,只是临时性质的。换句话说,已移动的资源对应的URI 将来还有可能发生改变。比如,用户把 URI 保存成书签,但不会像 301 状态码出现时那样去更新书签,而是仍旧保留返回 302 状态码的页面对应的 URI。

2.3 303 See Other

该状态码表示由于请求对应的资源存在着另一个 URI,应使用 GET方法定向获取请求的资源。

303 状态码和 302 Found 状态码有着相同的功能,但 303 状态码明确表示客户端应当采用 GET 方法获取资源,这点与 302 状态码有区别。

比如,当使用 POST 方法访问 CGI 程序,其执行后的处理结果是希望客户端能以 GET 方法重定向到另一个 URI 上去时,返回 303 状态码。虽然 302 Found 状态码也可以实现相同的功能,但这里使用 303状态码是最理想的。

(本书采用的是 HTTP/1.1,而许多 HTTP/1.1 版以前的浏览器不能正确理解 303 状态码。虽然 RFC 1945 和 RFC 2068 规范不允许客户端在重定向时改变请求的方法,但是很多现存的浏览器将 302 响应视为 303 响应,并且使用 GET方式访问在Location 中规定的 URI,而无视原先请求的方法。所以作者说这里使用 303 是最理想的。——译者注

当 301、302、303 响应状态码返回时,几乎所有的浏览器都会把POST 改成 GET,并删除请求报文内的主体,之后请求会自动再次发送。301、302 标准是禁止将 POST 方法改变成 GET 方法的,但实际使用时大家都会这么做。)

2.4 304 Not Modified

该状态码表示客户端发送附带条件的请求时,服务器端允许请求访问资源,但未满足条件的情况。304 状态码返回时,不包含任何响应的主体部分。304 虽然被划分在 3XX 类别中,但是和重定向没有关系。(附带条件的请求是指采用 GET方法的请求报文中包含 If-Match,If-ModifiedSince,If-None-Match,If-Range,If-Unmodified-Since 中任一首部。)

2.5 307 Temporary Redirect

临时重定向。该状态码与 302 Found 有着相同的含义。尽管 302 标准禁止 POST 变换成 GET,但实际使用时大家并不遵守。307 会遵照浏览器标准,不会从 POST 变成 GET。但是,对于处理响应时的行为,每种浏览器有可能出现不同的情况。

三、4xx——客户端错误

4XX 的响应结果表明客户端是发生错误的原因所在。

3.1 400 Bad Request

该状态码表示请求报文中存在语法错误。当错误发生时,需修改请求的内容后再次发送请求。另外,浏览器会像 200 OK 一样对待该状态码。

3.2 401 Unauthorized

该状态码表示发送的请求需要有通过 HTTP 认证(BASIC 认证、DIGEST 认证)的认证信息。另外若之前已进行过 1 次请求,则表示用 户认证失败。

返回含有 401 的响应必须包含一个适用于被请求资源的 WWWAuthenticate 首部用以质询(challenge)用户信息。当浏览器初次接收到 401 响应,会弹出认证用的对话窗口。

3.3 403 Forbidden

该状态码表明对请求资源的访问被服务器拒绝了。服务器端没有必要给出拒绝的详细理由,但如果想作说明的话,可以在实体的主体部分对原因进行描述,这样就能让用户看到了。

未获得文件系统的访问授权,访问权限出现某些问题(从未授权的发送源 IP 地址试图访问)等列举的情况都可能是发生 403 的原因。

3.4 404 Not Found

该状态码表明服务器上无法找到请求的资源。除此之外,也可以在服务器端拒绝请求且不想说明理由时使用。

四、5xx——服务器错误

5XX 的响应结果表明服务器本身发生错误。

4.1 500 Internal Server Error

该状态码表明服务器端在执行请求时发生了错误。也有可能是 Web应用存在的 bug 或某些临时的故障。

4.2 503 Service Unavailable

该状态码表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。如果事先得知解除以上状况需要的时间,最好写入RetryAfter 首部字段再返回给客户端。

五、状态码和状况的不一致

不少返回的状态码响应都是错误的,但是用户可能察觉不到这点。比如 Web 应用程序内部发生错误,状态码依然返回 200 OK,这种情况也经常遇到。

HTTP14种常见状态码详解——来自《http详解》相关推荐

  1. http常见状态码详解

    http 中有许多状态码,如果不做些总结,真的很容易搞混,比如,201.404.301.202.504等等.要是一个个记是不是很难记,那么现在总结下规律,来帮助我们记忆 所有的状态码可以分为: 1xx ...

  2. HTTP常见状态码(14种)

    HTTP状态码表示客户端HTTP请求的返回结果.标记服务器端的处理是否正常或者是出现的错误,能够根据返回的状态码判断请求是否得到正确的处理很重要. 状态码由3位数字和原因短语组成,例如下图所示: 数字 ...

  3. 常见的几种HTTP状态码

    状态码类别 1XX(信息性状态码)表示接收的请求正在处理 2XX(成功状态码)表示请求正常处理完毕 3XX(重定向状态码)表示需要进行附加操作以完成请求 4XX(客户端错误状态码)表示服务器无法处理请 ...

  4. DNS云学堂 | 快速定位DNS解析异常问题,牢记这四种DNS状态码

    DNS的状态码在进行故障排查的时候起着至关重要的作用.在DNS的维护中会经常遇到DNS解析异常问题,通过DNS的状态码可以初步判断DNS解析的异常问题.本期云学堂通过详解DNS状态码的定义,给出常见状 ...

  5. HTTP与HTTPS及其工作原理及三次握手、四次挥手、常见状态码

    一.HTTP与HTTPS HTTP:超文本传输协议,是一个客户端和服务器端请求和应答的标准,用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少,常基于TCP/I ...

  6. python post与get的区别_Python Requests库 Get和Post的区别和Http常见状态码

    (1)   在客户端,Get方式在通过URL提交数据,数据在URL中可以看到:POST方式,数据放置在HTML HEADER内提交. (2)   GET方式提交的数据最多只能有1024 Byte,而P ...

  7. web应用F12查看报错(前后端bug判断、2XX/3XX/4XX/5XX常见状态码解析)

    chrom浏览器为例 (1)打开开发者工具,在浏览器菜单栏选择工具-开发者工具,快捷键是F12 (2)打开之后切换到Network页签,操作就可以看到请求响应 (3)再选择响应的链接,切换到Previ ...

  8. 网络常见状态码大全。收藏这一篇就够了(HTTP Status Code)

    网络常见状态码大全 2开头(请求成功) 3开头(请求被重定向) 4开头(请求错误) 5开头(服务器错误) -------------------------------------------- 2开 ...

  9. TCP/IP协议及常见状态码说明(SYN,FIN,ACK,PSH,RST)

    TCP/IP协议及常见状态码(SYN,FIN,ACK,PSH,RST) TCP/IP协议\TCP协议原理\报文格式\三次握手的状态码 1.TCP/IP协议 TCP/IP协议(Transmission ...

最新文章

  1. 给你的开源项目加一个绶带吧
  2. 使用LeakCanary遇到的问题 就是不弹出来
  3. Microsoft.XMLHTTP 使用方式
  4. 《javaScript100例|03》自写javaScript+CSS轮显效果
  5. html用函数输出nn乘法表,第5讲 PHP编程.ppt
  6. SQL Sever — 表的操作
  7. 51Nod1601 完全图的最小生成树计数 Trie Prufer编码
  8. matplotlib易混概念理解与画图详解
  9. displayport1.4
  10. hdu 2881 Jack's struggle(DP)
  11. 2022-2027年中国仓储物流机器人行业发展前景及投资战略咨询报告
  12. JavaScript ES12新特性抢先体验
  13. 工信部发证 中国广电成第四大基础电信运营商
  14. Qt将选中的字体加粗下划线
  15. C函数库(libc、glibc、uClibc、newlib)
  16. 100兆每秒传输不是12.5MB,别误人子弟了
  17. vue element-----实现table前端分页
  18. 专科PHP考试题,大学英语专科试题答案
  19. 【重磅】国家数据局加商务分析师新职业,个人发展规划利好
  20. [Eigen中文文档] 稀疏矩阵快速参考指南

热门文章

  1. AI:一个20年程序猿的学习资料大全—BAT等面试资料/NECCS大赛资料/一二级建造师/网络编程爬虫等/公务员——只有你不想要的,没有你找不到的
  2. Crawler:反爬虫之基于urllib库+伪装浏览器方式实现从各种网站上(以百度贴吧为例)获得你喜欢的照片下载到本地电脑上
  3. 成功解决Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
  4. Django 【补充】ORM多对多正向查询
  5. Java基础——JVM内存结构
  6. IOS横竖屏控制与事件处理
  7. 视觉库—OpenCV
  8. C语言如何产生随机数
  9. Google App Engine平台下JDOQL查询报异常的问题解决方案
  10. linux设备驱动模型之 kset原理与实例分析