http的状态码 - 图1

1XX:通知

100(“Continue”)

2XX: 成功

200(“OK”),重要度:非常高。

它表示服务器成功执行了客户端所请求的动作。
实体主体:对于get请求,服务器返回客户端所请求资源的一个表示。

201(“Created”):重要度高。

当服务器按照**客户端请求创建一个新资源时**,发送此响应代码
响应报头:Location报头应包含指向新创建的URI
实体主体:应该给出新创建资源的描述与链接

202(“Accepted”):重要度中等

客户端的请求无法或者不被实时处理。请求稍后被处理
响应报头:应该把未处理完的请求暴露为一个资源,以便客户端稍后查询其状态。
实体主体:若无法让客户端稍后查询请求的状态,那么至少应该提供一个关于何时能处理该请求的估计

203(“Non-Authoritative Information”)

这个响应代码跟200一样,只不过服务器想让客户端知道,有些响应报头并非来自该服务器—他们可能是从客户端先前发送的一个请求里复制的,或者从第三方得到的。

204(“No Content”)重要度高

若服务器拒绝对PUT、POST或者DELETE请求返回任何状态信息或表示
服务器也可以对GET请求返回此响应代码,这表明“客户端请求的资源存在,但其表示是空的”

205(“Reset Content”):重要低

它与204类似,但与204不同的是,它表明客户端应重置数据源的视图或数据结构。假如你在浏览器里提交一个HTML表单,并得到响应代码204,那么表单里的各个字段值不变,可以继续修改它们;但假如得到的响应代码205,那么表单里的各个字段将被重置为它们的初始值。从数据录入方面讲:204适合对单条记录做一系列编辑,而205适于连续输入一组记录。

206(“Partial Content”)重要度高

部分GET请求常用于大型二进制文件的断点续传
请求报头:客户端为Range请求报头设置一个值。
响应报头:需要提供Date报头。ETag报头与Content-Location报头的值应该跟正常GET请求相同。

3XX重定向

3XX系列响应代码表明:客户端需要做些额外工作才能得到所需要的资源。通常用于GET请求。
告诉客户端需要向另一个URI发送GET请求,才能得到所需的表示。

300(“Multiple Choices”)重要度低

请求资源在服务器端存在多个表示,而服务器不知道客户端想要的是哪一个,发送此响应代码。
或者客户端没有使用Accept-*报头来指定一个表示,或客户端所请求的表示不存在,也发送此代码。

响应报头:如果服务器有首选表示,那么它可以在Location响应报头中给出这个首选表示的URI。跟其他3XX响应代码一样,客户端可以自动跟随Location中的URI。
实体主体:一个包含该资源各个表示的URI的列表。可以在表示中提供一些信息,以便用户作出选择。

301(“Moved Permanently”)重要度中

服务器知道客户端试图访问的是哪个资源,但它不喜欢客户端用当前URI来请求该资源。
它希望客户端记住另一个URI,并在今后的请求中使用那个新的URI。
可以通过这个响应代码来防止由于URI变更而导致老URI失效。

响应报头:服务器应当把规范URI放在Location响应报头里。
实体主体:服务器可以发送一个包含新URI的信息,不过这不是必需的。

302(“Found”)重要度:了解

这个响应码是造成大多数重定向方面混乱的最根本原因。一般不建议使用

303(“See Other”)重要度高

请求已经被处理,但服务器不是直接返回一个响应文档,而是返回响应文档的URI。
还有一种可能,303是服务器可以发送一个资源的标识,而不强迫客户端下载其所有资源。

304(“Not Modified”)重要度高

304响应码用于有主体数据,客户端已经拥有该数据,没必要重复发送的情况。(缓存)
客户端在发送get请求时附上一个值为Sunday的If-Modified-Since报头,客户端所请求的标识在服务器端(自星期日sunday)以来一直没有改变,服务器返回304响应

305(“use proxy”)

这个响应代码告诉客户端需要再发一次请求,但这次要通过一个http代理发送,而不是直接发送给服务器。

307(“Temporary Redirect”)

请求没有被处理,所请求的资源不在本地,资源在另外一个URI处。客户端应该向那个URI从新发送请求。

4XX:客户端错误

400(“bad Request”)

这是客户端常用的错误状态,当其他4XX响应不适用时,采用400。
此响应代码通常用于服务器收到客户端通过put或post请求提交的表示,格式正确,但是服务器不懂它是什么意思的情况。

401(“Unauthorized”)

402(“Payment Required”)

403(“Forbidden”)

404(“Not Found”)

405(“Method Not Allowd”)

406(“Not Acceptable”)

407(“Proxy Authentication Required”)

408(“Request Timeout”)

409(“Conflict”)

410(“Gone”)

411(“Length Reqired”)

412(“Precondition Failed”)

413(“Request Entity Too Large”)

414(“Request-URI Too Long”)

415(“Unsupported Media Type”)

416(“Requested Range Not Satisfiable”)

417(“Expectation Failed”)

5XX 服务端错误