【计算机网络、浏览器、前端】HTTP状态码总结 最全总结2.0 - Go语言中文社区

【计算机网络、浏览器、前端】HTTP状态码总结 最全总结2.0


【计算机网络、浏览器、前端】HTTP状态码总结

翻看去年写的HTTP状态码总结的文章【总结】HTTP协议中的状态码(200、403、404、500等)

现在看来

当时的我真是
在这里插入图片描述
正值计算机网络学习之际
在这里插入图片描述
让我再来好好总结一下

那些令人发愁的 HTTP状态码
在这里插入图片描述
----------------------------正经的分割线-------------------------------
在这里插入图片描述
在这里插入图片描述

【类型一:1XX】

1XX系列的状态码,通常表示通知信息,在浏览器与服务器之间沟通时使用。比如,请求已收到或者请求正在处理。

  • 100 Continue :客户端应重新发送初始请求。
  • 101 Switching Protocols :切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,比如从HTTP/1.0切换到HTTP/1.1。

【类型二:2XX】

2XX系列的状态码,通常表示响应成功。比如,请求已接受。

  • 200 OK :表示服务器成功响应了客户端的请求。
  • 201 Created :表示已创建。成功响应客户端请求并创建了新的资源
  • 202 Accepted :表示请求已接受。但未实时处理,稍后会处理。
  • 203 Non-Authoritative Information :表示非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本,可能是来自自第三方。
  • 204 No Content :表示无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档。常用在Ajax应用里。服务器通过这个响应代码告诉客户端:客户端的输入已被接受,但客户端不应该改变任何UI元素。
  • 205 Reset Content :表示重置内容。服务器处理成功,客户端重置文档视图。比如,在浏览器里提交一个HTML表单,并得到响应代码204,那么表单里的各个字段值不变,可以继续修改它们;但假如得到的响应代码205,那么表单里的各个字段将被重置为它们的初始值。
  • 206 Partial Content :表示部分内容。服务器成功处理了部分GET请求。
    在这里插入图片描述

【类型三:3XX】

3XX系列的状态码,通常表示重定向。比如,要完成请求还需要进一步重定向到其他URL。

  • 300 Multiple Choices :表示多种选择。被请求的资源在服务器端存在多个表示,而服务器不知道客户端想要的是哪一个表示时,发送这个响应代码。
  • 301 Moved Permanently :表示永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。可以通过这个响应代码来防止由于URI变更而导致老URI失效。
  • 302 Found :表示临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI。
  • 303 See Other :表示查看其它地址。与301类似。请求已经被处理,但服务器不是直接返回一个响应文档,而是返回一个响应文档的URI。该响应文档可能是一个静态的状态信息,也可能是其他资源。303响应代码是一种规范化资源URI的好办法。一个资源可以有多个URIs,但每个资源的规范URI只有一个,该资源的所有其他URIs都通过303指向该资源的规范URI。
  • 304 Not Modified :表示未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源。这个响应代码跟204类似:响应实体主体都必须为空。但204用于没有主体数据的情况,而304用于有主体数据,但客户端已拥有该数据,没必要重复发送的情况。
  • 305 Use Proxy :表示使用代理。所请求的资源必须通过代理访问。用于告诉客户端它需要再发一次请求,但这次要通过一个HTTP代理发送,而不是直接发送给服务器。这个响应代码使用的不多,因为服务器很少在意客户端是否使用某一特定代理。这个代码主要用于基于代理的镜像站点。
  • 306 该状态码已被废。
  • 307 Temporary Redirect : 表示临时重定向。请求还没有被处理,因为所请求的资源不在本地:它在另一个URI处。客户端应该向那个URI重新发送请求。就GET请求来说,它只是请求得到一个表示,该响应代码跟303没有区别。307和303有显著区别。对POST,PUT或者DELETE请求响应303表明:操作已经成功执行,但响应实体将不随本响应一起返回,若客户端想要获取响应实体主体,它需要向另一个URI发送GET请求。而307表明:服务器尚未执行操作,客户端需要向Location报头里的那个URI重新提交整个请求。
    在这里插入图片描述

【类型四:4XX】

4XX系列的状态码,通常表示客户端有错误。比如,客户端的请求有错误。

  • 400 Bad Request :表示客户端请求的语法错误,服务器无法理解。
  • 401 Unauthorized :表示请求要求用户的身份认证。用于客户端试图对一个受保护的资源进行操作,却又没有提供正确的认证证书。
  • 402 Payment Required 该状态码未使用,保留今后使用。
  • 403 Forbidden :表示服务器理解请求客户端的请求,但是拒绝执行此请求。
  • 404 Not Found :表示服务器无法根据客户端的请求找到资源。这应该是我们最熟悉的状态码了。
  • 405 Method Not Allowd :表示客户端请求中的方法被禁止。比如,客户端试图使用一个本资源不支持的HTTP方法。例如:一个资源只支持GET方法,但是客户端使用PUT方法访问。
    注:Allow报头列出本资源支持哪些HTTP方法,例如:Allow:GET,POST
  • 406 Not Acceptable :表示服务器无法根据客户端请求的内容特性完成请求。当客户端对表示有太多要求,以至于服务器无法提供满足要求的表示,服务器可以发送这个响应代码。比如,客户端通过Accept头指定媒体类型为application/json+hic,但是服务器只支持application/json。
  • 407 Proxy Authentication Required :表示请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权。区别在于:401是无权访问web服务,407是无权访问代理。
  • 408 Reqeust Timeout :表示服务器等待客户端发送的请求时间过长,超时。
  • 409 Conflict :表示服务器完成客户端的PUT请求是可能返回此代码,服务器处理请求时发生了冲突。
  • 410 Gone :表示客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可使用410代码,再通过301代码指定资源的新位置。
  • 411 Length Required :表示服务器无法处理客户端发送的不带Content-Length的请求信息。
  • 412 Precondition Failed :表示客户端请求信息的先决条件错误。客户端在请求报头里指定一些前提条件,并要求服务器只有在满足一定条件的情况下才能处理本请求。若服务器不满足这些条件,就返回此响应代码。
  • 413 Request Entity Too Large :表示由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息。务器可以用它来中断客户端的请求并关闭连接,而不需要等待请求完成。411用于客户端未指定长度的情况,而413用于客户端发送的表示太大,以至于服务器无法处理。
  • 414 Request-URI Too Long :表示请求的URI过长(URI通常为网址),服务器无法处理。
  • 415 Unsupported Media Type :表示服务器无法处理请求附带的媒体格式。当客户端在发送表示时采用了一种服务器无法理解的媒体类型,服务器发送此响应代码。比如说,服务器期望的是XML格式,而客户端发送的确实JSON格式。
  • 416 Requestd Range Not Satisfiable :表示客户端请求的范围无效。当客户端所请求的字节范围超出表示的实际大小时,服务器发送此响应代码。例如:你请求一个表示的1-100字节,但该表示总共只用99字节大小。注:仅当原始请求里包含Range报头时,才有可能收到此响应代码。若原始请求提供的是If-Range报头,则不会收到此响应代码。服务器应当通过Content-Range报头告诉客户端表示的实际大小。
  • 417 Expectation Failed :表示服务器无法满足Expect的请求头信息。
    在这里插入图片描述

【类型五:5XX】

5XX系列的状态码,通常表示服务端有错误。比如,服务的有错误无法完成请求。

  • 500 Internal Server Error :表示服务器内部错误,无法完成请求。如果在执行请求处理代码时遇到了异常,它们就发送此响应代码。
  • 501 Not Implemented :表示服务器不支持请求的功能,无法完成请求。客户端试图使用一个服务器不支持的HTTP特性。比如,客户端试图做一个采用了拓展HTTP方法的请求,而普通web服务器不支持此请求。它跟响应代码405比较相似,405表明客户端所用的方法是一个可识别的方法,但该资源不支持,而501表明服务器根本不能识别该方法。
  • 502 Bad Gateway :表示充当网关或代理的服务器,从远端服务器接收到了一个无效的请求。**只有HTTP代理会发送这个响应代码。**它表明代理方面出现问题,或者代理与上行服务器之间出现问题,而不是上行服务器本身有问题。若代理根本无法访问上行服务器,响应代码将是504。
  • 503 Service Unavailable :表示由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中。表明HTTP服务器正常,只是下层web服务服务不能正常工作。最可能的原因是资源不足:服务器突然收到太多请求,以至于无法全部处理。由于此问题多半由客户端反复发送请求造成,因此HTTP服务器可以选择拒绝接受客户端请求而不是接受它,并发送503响应代码。
    注:服务器可以通过Retry-After报头告知客户端何时可以重试。
  • 504 Gateway Timeout :表示充当网关或代理的服务器,未及时从远端服务器获取请求。跟502类似,**只有HTTP代理会发送此响应代码。**此响应代码表明代理无法连接上行服务器。
  • 505 HTTP Version Not Supported :表示服务器不支持请求的HTTP协议的版本,无法完成处理。
  • 506 :表示服务器存在内部配置错误。
  • 507 :表示服务器无法存储完成请求所必须的内容。
  • 509 :表示服务器达到带宽限制。这不是一个官方的状态码,但是仍被广泛使用。
  • 510 :表示获取资源所需要的策略并没有没满足。
    在这里插入图片描述
    以上就是对HTTP状态码的地表最强总结了
    在这里插入图片描述

【IntelliJ IDEA教程】相关技术文章:
【Intellij IDEA教程】怎么自动清除无效的import导入包、清除无效的import导入包的快捷键
【IntelliJ IDEA教程】在IntelliJ IDEA启动项目 Warning:java: 源值1.5已过时, 将在未来所有发行版中删除 解决办法
【IntelliJ IDEA教程】提示信息Unmapped Spring configuration files found.Please configure Spring facet. 解决办法
【IntelliJ IDEA教程】怎么取消IntelliJ IDEA对单词拼写的检查

【Jupyter Notebook教程】相关技术文章:
【Python教程】Jupyter Notebook把一段很长的代码分成多行的解决办法】

【操作系统 教程】相关技术文章:
【Linux操作系统 教程】进程间的五种通信方式详解之——管道】

【Android 教程】相关技术文章:
【Android教程】Android Studio找不到连接的手机完全解决办法】
【Android问题解决】java.io.IOException: Cleartext HTTP traffic to … not permitted完美解决

【React 教程】相关技术文章:
【yarn问题解决】An unexpected error occured:“https://npm-registry.toolsfdg.net/”connnect ECONNREFUSED10.
【React + Antd 教程】Failed to compile. Module not found: Can’t resolve 'antd/dist’完美解决

【JS 教程】相关技术文章:
【JS语法糖】常见的几种JS语法糖
【JS 教程】相关技术文章:
【JavaScript 教程】ES6 中的 Promise对象 详解

【Windows 教程】相关技术文章:
【Windows技巧】完美解决“如何在任意文件夹中右键打开cmd终端?”右键快捷方式打开指定文件夹目录下的cmd终端

关于JSP页面的生命周期详解,可参考如下的技术文章:
【Java Web总结】JSP页面的生命周期详解

【前端 教程】相关技术文章:
【前端 教程】详解 立即执行函数
【前端 教程】详解 闭包

【Java Web】相关技术文章:
【Java Web总结】Java Web项目中 的.classpath、.mymetadata、.project文件作用
【Java Web问题解决】Tomcat报错javax.servlet.ServletException: Error instantiating servlet class.报错404
【比较】什么是“服务器端跳转”“客户端跳转”,二者有什么区别?
【总结】表单提交的get和post有什么不同?
【Java Web问题解决】Tomcat报错:java.lang.ClassCastException: cannot be cast to javax.servlet.Filter解决办法
【Java Web问题解决】Filter过滤器初始化方法init()执行了两次原因及解决方法
【总结】Java Web 中的4种属性范围(page、request、session、application)
【Java Web问题解决】Tomcat报错:java.sql.SQLException: No suitable driver found for jdbc:mysql://
【Java Web问题解决】Tomcat启动时控制台出现中文乱码的问题解决方法
【示例项目】java实现通过身份证号码判断籍贯所在地区
【总结】HTTP协议中的状态码(200、403、404、500等)
【Java Web问题解决】提交表单后显示乱码原因及解决办法
【Java Web总结】JSP页面的生命周期详解
【Java Web总结】JSP页面实现类详解
【Java Web 问题解决】Tomcat启动失败 报错:Server Tomcat v9.0 Server at localhost failed to start.
【Java Web问题解决】连接数据库出错:java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/
【Java Web问题解决】使用过滤器Filter解决提交表单后显示乱码问题
【Java Web问题解决】过滤器Filter进行编码过滤后页面空白、显示不了原因及解决办法

【Linux 操作系统】相关技术文章:
【Linux问题解决】Ubuntu Linux 安装gcc4.9 g++4.9报错“没有可供安装的候选者”解决办法
【Linux教程】Ubuntu Linux 更换源教程
【Linux教程】如何实现在Ubuntu Linux和windows之间复制粘贴、拖拽复制文件?
【Linux问题解决】操作系统用C语言多线程编程 对‘pthread_create’未定义的引用 报错解决办法
【Linux教程】Linux中用C语言多线程编程之pthread_join()函数
【Linux操作系统、C语言】在Linux中用C语言进行OpenMP并行程序设计之常见指令、库函数和指令总结
【VMware 虚拟机问题解决】VMware Workstation pr无法在Windows上运行的解决方案
【Linux 问题解决】Ubuntu执行apt-get命令报错:无法获得锁 /var/lib/dpkg/lock…解决方案

【Python】相关技术文章:
【总结】Python与C语言、Java等语言基本语法的不同点
【总结】分析Python中的循环技巧
【总结】Python语言是编译型语言还是解释型语言?(Python程序执行过程)
【总结】Python2 和 Python3 的区别
利用Python一层循环打印 * 型三角形
【总结】Python与C语言、Java等语言基本语法的不同点
【总结】你知道吗?——元组其实是可变的序列!
【Python爬虫教程】Python爬虫基本流程及相关技术支持
【Python问题解决】PyCharm中debug报错:using cython not found. pydev debugger: process 13108 is connecting原因及解决
【Python总结】闭包及其应用

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_43876206/article/details/106575416
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-06-27 23:25:59
  • 阅读 ( 1378 )
  • 分类:前端

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢