首页 > 其他分享 >应该掌握的HTTP状态码

应该掌握的HTTP状态码

时间:2022-12-21 20:31:25浏览次数:38  
标签:状态 HTTP 请求 掌握 服务器端 URI 服务器 客户端

状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结果。借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了错误。


  1. 2XX成功,2XX的响应结果表明请求被正常处理了。
  • 200 OK ,表示从客户端发来的请求在服务器端被正常处理了。
  • 204 No Content,该状态码代表服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分。另外,也不允许返回任何实体的主体。一般在只需要从客户端往服务器发送信息,而对客户端不需要发送新信息内容的情况下使用
  • 206 Partial Content,该状态码表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求。响应报文中包含由Content-Range指定范围的实体内容。


  1. 3XX重定向,表明浏览器需要执行某些特殊的处理以正确处理请求。
  • 301 Moved Permanently,永久性重定向。该状态码表示请求的资源已被分配了新的URI,以后应使用资源现在所指的URI。也就是说,如果已经把资源对应的URI保存为书签了,这时应该按Location首部字段提示的URI重新保存。
  • 302 Found,临时性重定向。该状态码表示请求的资源已被分配了新的URI,希望用户(本次)能使用新的URI访问。
  • 303 See Other,该状态码表示由于请求对应的资源存在着另一个URI,应使用GET方法定向获取请求的资源。303状态码和302 Found状态码有着相同的功能,但303状态码明确表示客户端应当采用GET方法获取资源,这点与302状态码有区别。
  • 304 Not Modified,该状态码表示客户端发送附带条件的请求[插图]时,服务器端允许请求访问资源,但因发生请求未满足条件的情况后,直接返回304 Not Modified(服务器端资源未改变,可直接使用客户端未过期的缓存)。304状态码返回时,不包含任何响应的主体部分。
  • 307 Temporary Redirect,临时重定向。该状态码与302 Found有着相同的含义。尽管302标准禁止POST变换成GET,但实际使用时大家并不遵守。


  1. 4XX客户端错误,结果表明客户端是发生错误的原因所在。
  • 400 Bad Request,该状态码表示请求报文中存在语法错误。当错误发生时,需修改请求的内容后再次发送请求。另外,浏览器会像200 OK一样对待该状态码。
  • 401 Unauthorized,该状态码表示发送的请求需要有通过HTTP认证(BASIC认证、DIGEST认证)的认证信息。另外若之前已进行过1次请求,则表示用户认证失败。
  • 403 Forbidden,该状态码表明对请求资源的访问被服务器拒绝了。服务器端没有必要给出拒绝的详细理由,但如果想作说明的话,可以在实体的主体部分对原因进行描述,这样就能让用户看到了。
  • 404 Not Found,该状态码表明服务器上无法找到请求的资源。除此之外,也可以在服务器端拒绝请求且不想说明理由时使用。


  1. 5XX服务器错误,结果表明服务器本身发生错误。
  • 500 Internal Server Error,该状态码表明服务器端在执行请求时发生了错误。也有可能是Web应用存在的bug或某些临时的故障。
  • 501 Not Implemented,服务器不支持当前请求所需要的某个功能。当服务器无法识别请求的方法,并且无法支持其对任何资源的请求。
  • 502 Bad Gateway,作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。
  • 503 Service Unavailable,由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复。如果能够预计延迟时间,那么响应中可以包含一个 Retry-After 头用以标明这个延迟时间。如果没有给出这个 Retry-After 信息,那么客户端应当以处理500响应的方式处理它。注意:503状态码的存在并不意味着服务器在过载的时候必须使用它。某些服务器只不过是希望拒绝客户端的连接。
  • 504 Gateway Timeout,作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器(URI标识出的服务器,例如HTTP、FTP、LDAP)或者辅助服务器(例如DNS)收到响应。注意:某些代理服务器在DNS查询超时时会返回400或者500错误。
  • 505 HTTP Version Not Supported,服务器不支持,或者拒绝支持在请求中使用的 HTTP 版本。这暗示着服务器不能或不愿使用与客户端相同的版本。响应中应当包含一个描述了为何版本不被支持以及服务器支持哪些协议的实体。
  • 506 Variant Also Negotiates,由《透明内容协商协议》(RFC 2295)扩展,代表服务器存在内部配置错误:被请求的协商变元资源被配置为在透明内容协商中使用自己,因此在一个协商处理中不是一个合适的重点。
  • 507 Insufficient Storage,服务器无法存储完成请求所必须的内容。这个状况被认为是临时的。WebDAV (RFC 4918)
  • 509 Bandwidth Limit Exceeded,服务器达到带宽限制。这不是一个官方的状态码,但是仍被广泛使用。
  • 510 Not Extended,获取资源所需要的策略并没有被满足。(RFC 2774)

标签:状态,HTTP,请求,掌握,服务器端,URI,服务器,客户端
From: https://blog.51cto.com/key3feng/5960118

相关文章

  • C# Flurl 高性能的访问http
    安装nuget搜索安装flurl.http使用varurl="http://www.some-api.com".AppendPathSegment("login").SetQueryParams(new{......
  • 创建可接收 HTTP 多部分文件上载的服务器应用程序
    本指南将引导您完成创建可接收HTTP多部分文件上载的服务器应用程序的过程。您将构建什么您将创建一个接受文件上传的Spring引导Web应用程序。您还将构建一个简单的HT......
  • 通过GitHub和阿里云自定义域名实现https认证
    在GitHub中的操作登录GitHub,点击“Yourrepositories”,进入个人仓库页面;点击“new“,进入新建仓库页面;仓库名称填写<username>.github.io,<username>就是GitHub的账......
  • [Computer Networks]一个http请求的完成的全过程
    本文主要讲述了一个httprequest请求从发出到收到response的整个生命周期,希望可以通过对整个流程的一个描述来梳理清楚五层网络协议的定义以及各层之间是如何协作的。......
  • HttpURLConnection基本工作原理
    运行截图MainActivity.javapackagecsdn.example.com.notification.NetWorkTest;importandroid.os.Bundle;importandroid.support.v7.app.AppCompatActivity;importandr......
  • 互联网应用之传递HTTP参数
    实例说明HTTP是一种网络传输协议,现实中大多数网页都是通过"HTTP://www."的形式实现显示的.再具体应用时,一些需要的数据都是通过参数传递的.和网络HTTP有关的是HTTPproto......
  • SAP发布HTTP接口
    1、创建类 引用标准接口改写集成的接口方法 此处仅实现POST方法,将传入的JSON报文转为函数传入参数,调用获取物料接口,并将返回的物料信息,转换为JSON报文返回METH......
  • 掌握这20个JS技巧,做一个不加班的前端人
    本文分享自华为云社区《提高代码效率的20个JavaScript技巧和窍门》,作者:海拥。在我们的日常任务中,我们会编写诸如排序、搜索、查找唯一值、传递参数、交换值等功能,所以......
  • 在nodejs中体验http/2
    前言2015年,HTTP/2发布,直到2021年公司的项目才开始在实践中应用;自己对http2诸多特点的理解只存在于字面上,于是尝试在nodejs中实践一下,加深自己的理解。多路复用同域名下......
  • HttpClient Timeout waiting for connection from pool 问题解决方案
    错误:org.apache.http.conn.ConnectionPoolTimeoutException:Timeoutwaitingforconnectionfrompool前言:第一次看到这个错误,上网找了下,有文章说是连接池不够了。。。......