常见的状态码
一般人只需要了解以下常见的状态码就够了, 如果你想了解更多, 请继续往下看。
200 OK 服务器成功处理了请求(这个是我们见到最多的) |
301/302 Moved Permanently(重定向)请求的URL已移走。Response中应该包含一个Location URL, 说明资源现在所处的位置 |
304 Not Modified(未修改)客户的缓存资源是最新的, 要客户端使用缓存 |
404 Not Found 未找到资源 |
501 Internal Server Error服务器遇到一个错误,使其无法对请求提供服务 |
1XX 信息性状态码
这些状态码是HTTP 1.1引入的。 对于这些状态码的价值还存在争论 (我个人从来没见过这些状态码, 也没有理解这些状态码。)
状态码 | 状态消息 | 含义 | 实例 |
100 | Continue(继续) | 收到了请求的起始部分,客户端应该继续请求 | |
101 | Switching Protocols(切换协议) | 服务器正根据客户端的指示将协议切换成Update Header列出的协议 |
2XX 成功状态码
客户端发起请求时, 这些请求通常都是成功的。服务器有一组用来表示成功的状态码,分别对应于不同类型的请求。
状态码 | 状态消息 | 含义 | 实例 |
200 | OK | 服务器成功处理了请求(这个是我们见到最多的) | HTTP协议详解-200 |
201 | Created(已创建) | 对于那些要服务器创建对象的请求来说,资源已创建完毕。 | |
202 | Accepted(已接受) | 请求已接受, 但服务器尚未处理 | |
203 | Non-Authoritative Information(非权威信息) | 服务器已将事务成功处理,只是实体Header包含的信息不是来自原始服务器,而是来自资源的副本。 | |
204 | No Content(没有内容) | Response中包含一些Header和一个状态行, 但不包括实体的主题内容(没有response body) | 状态码204 |
205 | Reset Content(重置内容) | 另一个主要用于浏览器的代码。意思是浏览器应该重置当前页面上所有的HTML表单。 | |
206 | Partial Content(部分内容) | 部分请求成功 | 状态码206 |
3XX 重定向状态码
重定向状态码用来告诉浏览器客户端,它们访问的资源已被移动, Web服务器发送一个重定向状态码和一个可选的Location Header, 告诉客户端新的资源地址在哪。
浏览器客户端会自动用Location中提供的地址,重新发送新的Request。 这个过程对用户来说是透明的。
301和302 非常相似, 一个是永久转移,一个是临时转移。 (在我们看来, 这两个没太大区别)
302,303,307 是一样。 这是因为302是HTTP 1.0定义的, HTTP1.1中使用303,307. 同时又保留了302. (但在现实中,我们还是用302,我是没见过303和307)
所以这一节, 我们只需要掌握302, 304 就可以了。
状态码 | 状态消息 | 含义 | 实例 |
300 | Multiple Choices(多项选择) | 客户端请求了实际指向多个资源的URL。这个代码是和一个选项列表一起返回的,然后用户就可以选择他希望的选项了 | |
301 | Moved Permanently(永久移除) | 请求的URL已移走。Response中应该包含一个Location URL, 说明资源现在所处的位置 | 状态码301 |
302 | Found(已找到) | 与状态码301类似。但这里的移除是临时的。 客户端会使用Location中给出的URL,重新发送新的HTTP request | HTTP协议详解-302 |
303 | See Other(参见其他) | 类似302 | |
304 | Not Modified(未修改) | 客户的缓存资源是最新的, 要客户端使用缓存 | HTTP协议之缓存-304 |
305 | Use Proxy(使用代理) | 必须通过代理访问资源, 代理的地址在Response 的Location中 | |
306 | 未使用 | 这个状态码当前没使用 | |
307 | Temporary Redirect(临时重定向 | 类似302 |