图解HTTP之返回结果的HTTP状态(四)
HTTP状态码负责表示客户端HTTP请求的返回结果、标记服务器端的处理是否正常、通知出现的错误等工作。
状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结果。借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了错误。
仅记录在 RFC2616 上的 HTTP 状态码就达 40 种,若再加上WebDAV(Web-based Distributed Authoring and Versioning,基于万维网的分布式创作和版本控制)(RFC4918、5842) 和附加 HTTP 状态码(RFC6585)等扩展,数量就达 60 余种。别看种类繁多,实际上经常使用的大概只有 14 种。
2XX成功 响应结果表明请求被正常处理
-
200 OK 根据请求方法有正常的返回资源
-
204 No Content 请求处理成功,但无资源返回
-
206 Partial Content 对范围请求的正确返回资源
3XX重定向 浏览器需要执行某些特殊的处理以正确处理请求
-
301 Moved Permanently 永久性重定向 URI更新,以后应使用更新后的URI
-
302 Found 临时性重定向 URI更新,本次使用更新的URI
-
303 See Other 请求对应的资源存在着另一个 URI,应使用 GET方法定向获取请求的资源
当301、302、303响应状态码返回时,几乎所有浏览器会把POST方法改为GET,并删除请求报文内的主体,之后请求会自动再次发送。
-
304 Not Modified 资源已找到,但未符合条件请求,不包含任何响应的主体部分。距离上次,未修改用缓存。
-
307 Temporary Redirect 临时重定向 该状态码与 302 Found 有着相同的含义,但不会从 POST 变成 GET
4XX客户端发生错误
-
400 Bad Request 请求报文中存在语法错误
-
401 Unauthorized 需要有通过HTTP认证
-
403 Forbidden不允许访问那个资源
-
404 Not Found 服务器上没有请求的资源,也可以在服务器端拒绝请求且不想说明理由时使用
5XX服务器错误
-
500 Internal Server Error 内部资源出故障
-
503 Service Unavailable 服务器无法处理请求,超负载/停机中