作者 | lpl
来源 | lpl (公众号:数据分析从0到1)
1、基本的响应代码
200("OK")
一切正常。实体主体中的文档(若存在的话)是某资源的表示。
400("Bad Request")
客户端方面的问题。实体主题中的文档(若存在的话)是一个错误消息。希望客户端能够理解此错误消息,并改正问题。
500("Internal Server Error")
服务期方面的问题。实体主体中的文档(如果存在的话)是一个错误消息。该错误消息通常无济于事,因为客户端无法修复服务器方面的问题。
301("Moved Permanently")
当客户端触发的动作引起了资源URI的变化时发送此响应代码。另外,当客户端向一个资源的旧URI发送请求时,也发送此响应代码。
404("Not Found") 和410("Gone")
当客户端所请求的URI不对应于任何资源时,发送此响应代码。404用于服务器端不知道客户端要请求哪个资源的情况;410用于服务器端知道客户端所请求的资源曾经存在,但现在已经不存在了的情况。
409("Conflict")
当客户端试图执行一个”会导致一个或多个资源处于不一致状态“的操作时,发送此响应代码。
2、状态码系列。
1XX:通知
1XX系列响应代码仅在与HTTP服务器沟通时使用。
100("Continue")
重要程度:中等,但(写操作时)很少用。
表示:继续。客户端应继续其请求。
101("Switching Protocols")
重要程度:非常低。
表示:切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议
请求报头:客户端把Upgrade报头设置为一组希望使用的协议。
响应报头:如果服务器同意切换协议,它就返回一个Upgrade报头,说明它将切换到那个协议,并附上一个空白行。服务器不用关闭TCP链接,而是直接在该TCP连接上开始使用新的协议。
2XX: 成功
2XX系列响应代码表明操作成功了。
200("OK")
200("OK")
重要程度:非常高。
表示:请求成功。一般用于GET与POST请求
一般来说,这是客户端希望看到的响应代码。它表示服务器成功执行了客户端所请求的动作,并且在2XX系列里没有其他更适合的响应代码了。
实体主体:对于GET请求,服务器应返回客户端所请求资源的一个表示。对于其他请求,服务器应返回当前所选资源的一个表示,或者刚刚执行的动作的一个描述。
201("Created")
重要程度:高。
表示:已创建。成功请求并创建了新的资源
当服务器依照客户端的请求创建了一个新资源时,发送此响应代码。
响应报头:Location报头应包含指向新创建资源的规范URI。
实体主体:应该给出新创建资源的描述与链接。若已经在Location报头里给出了新资源的URI,那么可以用新资源的一个表示作为实体主体。
202("Accepted")
重要程度:中等。
表示:已接受。已经接受请求,但未处理完成
客户端的请求无法或将不被实时处理。请求稍后会被处理。请求看上去是合法的,但在实际处理它时有出现问题的可能。
203("Non-Authoritative Information")
重要程度:非常低。
表示: 非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本
这个响应代码跟200一样,只不过服务器想让客户端知道,有些响应报头并非来自该服务器--他们可能是从客户端先前发送的一个请求里复制的,或者从第三方得到的。
204("No Content")
重要程度:高。
表示: 无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档
205("Reset Content")
重要程度:低。
表示: 重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域
206("Partial Content")
重要程度:对于支持部分GET(partial GET)的服务而言“非常高”,其他情况下“低”。
表示: 部分内容。服务器成功处理了部分GET请求
它跟200类似,但它用于对部分GET请求(即使用Range请求报头的GET请求)的响应。部分GET请求常用于大型二进制文件的断点续传。
3XX 重定向
3XX系列响应代码表明:客户端需要做些额外工作才能得到所需要的资源。它们通常用于GET请求。他们通常告诉客户端需要向另一个URI发送GET请求,才能得到所需的表示。那个URI就包含在Location响应报头里。
300("Multiple Choices")
重要程度:低。
表示: 多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择
301("Moved Permanently")
重要程度:中等。
表示:永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替
服务器知道客户端试图访问的是哪个资源,但它不喜欢客户端用当前URI来请求该资源。它希望客户端记住另一个URI,并在今后的请求中使用那个新的URI。你可以通过这个响应代码来防止由于URI变更而导致老URI失效。
302("Found")
重要程度:应该了解,特别市编写客户端时。但我不推荐使用它。
表示:临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI
303("See Other")
重要程度:高。
表示: 查看其它地址。与301类似。使用GET和POST请求查看
304("Not Modified")
重要程度:高。
表示:未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源
305("Use Proxy")
重要程度:低。
表示:使用代理。所请求的资源必须通过代理访问
306 未使用
重要程度:无
表示: 已经被废弃的HTTP状态码
306 响应代码没有在HTTP标准中定义过。
307("Temporary Redirect")
重要程度:高。
表示: 临时重定向。与302类似。使用GET请求重定向
4XX:客户端错误
这些响应代码表明客户端出现错误。不是认证信息有问题,就是表示格式或HTTP库本身有问题。客户端需要自行改正。
400("Bad Request")
重要程度:高。
表示: 客户端请求的语法错误,服务器无法理解
401("Unauthorized")
重要程度:高。
表示: 请求要求用户的身份认证
402("Payment Required")
重要程度:无。
表示: 保留,将来使用
403("Forbidden")
重要程度:中等。
表示: 服务器理解请求客户端的请求,但是拒绝执行此请求
404("Not Found")
重要程度:高。
表示: 服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面
405("Method Not Allowd")
重要程度:中等。
表示: 客户端请求中的方法被禁止
406("Not Acceptable")
重要程度:中等。
表示: 服务器无法根据客户端请求的内容特性完成请求
407("Proxy Authentication Required")
重要程度:低。
表示: 请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权
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的响应信息
414("Request-URI Too Long")
重要程度:低。
表示: 请求的URI过长(URI通常为网址),服务器无法处理
415("Unsupported Media Type")
重要程度:中等。
表示: 服务器无法处理请求附带的媒体格式
416("Requestd Range Not Satisfiable")
重要程度:低。
表示: 客户端请求的范围无效
417("Expectation Failed")
重要程度:中等。
表示: 服务器无法满足Expect的请求头信息
5XX 服务端错误
这些响应代码表明服务器端出现错误。一般来说,这些代码意味着服务器处于不能执行客户端请求的状态,此时客户端应稍后重试。有时,服务器能够估计客户端应在多久之后重试。并把该信息放在Retry-After响应报头里。
5XX系列响应代码在数量上不如4XX系列多,这不是因为服务器错误的几率小,而是因为没有必要如此详细--对于服务器方面的问题,客户端是无能为力的。
500("Internal Server Error")
重要程度:高。
表示: 服务器内部错误,无法完成请求
501("Not Implemented")
重要程度:低。
表示: 客户端试图使用一个服务器不支持的HTTP特性。
服务器不支持请求的功能,无法完成请求
502("Bad Gateway")
重要程度:低。
表示: 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应
503("Service Unavailable")
重要程度:中等到高。
表示: 由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中
504("Gateway Timeout")
重要程度:低。
表示: 充当网关或代理的服务器,未及时从远端服务器获取请求
505("HTTP Version Not Supported")
重要程度: 非常低。
表示: 当服务器不支持客户端试图使用的HTTP版本时发送此响应代码。