4.1 状态码告知从服务器端返回的申请后果
类别 起因短语
- 1XX Informational(信息性状态码) 接管的申请正在解决
- 2XX Success(胜利状态码) 申请失常处理完毕
- 3XX Redirection(重定向状态码) 须要进行附加操作以实现申请
- 4XX Client Error(客户端谬误状态码) 服务器无奈解决申请
- 5XX Server Error(服务器谬误状态码) 服务器解决申请出错
仅记录在 RFC2616 上的 HTTP 状态码就达 40 种,若再加上 WebDAV(Web-based Distributed Authoring and Versioning,基于万维网 的分布式创作和版本控制)(RFC4918、5842) 和附加 HTTP 状态码 (RFC6585)等扩大,数量就达 60 余种。
4.2 2XX 胜利
4.2.1 200 OK
示意从客户端发来的申请在服务器端被失常解决了。
在响应报文内,随状态码一起返回的信息会因办法的不同而产生改 变。比方,应用 GET 办法时,对应申请资源的实体会作为响应返 回; 而应用 HEAD 办法时,对应申请资源的实体首部不随报文主体 作为响应返回(即在响应中只返回首部,不会返回实体的主体部 分)。
4.2.2 204 No Content
该状态码代表服务器接管的申请已胜利解决,但在返回的响应报文中 不含实体的主体局部。另外,也不容许返回任何实体的主体。
4.2.3 206 Partial Content
该状态码示意客户端进行了范畴申请,而服务器胜利执行了这部分的 GET 申请。响应报文中蕴含由 Content-Range 指定范畴的实体内容。
4.3 3XX 重定向
3XX 响应结果表明浏览器须要执行某些非凡的解决以正确处理申请。
4.3.1 301 Moved Permanently
永久性重定向。该状态码示意申请的资源已被调配了新的 URI,当前 应应用资源当初所指的 URI。也就是说,如果曾经把资源对应的 URI 保留为书签了,这时应该按 Location 首部字段提醒的 URI 从新保留。
像下方给出的申请 URI,当指定资源门路的最初遗记增加斜杠“/”,就 会产生 301 状态码。
http://example.com/sample
4.3.2 302 Found
临时性重定向。该状态码示意申请的资源已被调配了新的 URI,心愿 用户 (本次) 能应用新的 URI 拜访。
和 301 Moved Permanently 状态码类似,但 302 状态码代表的资源不 是被永恒挪动,只是长期性质的。换句话说,已挪动的资源对应的 URI 未来还有可能产生扭转。比方,用户把 URI 保留成书签,但不会 像 301 状态码呈现时那样去更新书签,而是仍旧保留返回 302 状态码 的页面对应的 URI。
4.3.3 303 See Other
该状态码示意因为申请对应的资源存在着另一个 URI,应应用 GET 办法定向获取申请的资源。
303 状态码和 302 Found 状态码有着雷同的性能,但 303 状态码明确 示意客户端该当采纳 GET 办法获取资源,这点与 302 状态码有区 别。
当 301、302、303 响应状态码返回时,简直所有的浏览器都会把 POST 改成 GET,并删除申请报文内的主体,之后申请会主动再次 发送。
301、302 规范是禁止将 POST 办法扭转成 GET 办法的,但理论使 用时大家都会这么做。
4.3.4 304 Not Modified
该状态码示意客户端发送附带条件的申请 2 时,服务器端容许申请访 问资源,但未满足条件的状况。304 状态码返回时,不蕴含任何响应 的主体局部。304 尽管被划分在 3XX 类别中,然而和重定向没无关 系。
2 附带条件的申请是指采纳 GET 办法的申请报文中蕴含 If-Match,If-Modified- Since,If-None-Match,If-Range,If-Unmodified-Since 中任一首部。
4.4 4XX 客户端谬误
4.4.1 400 Bad Request
该状态码示意申请报文中存在语法错误。当谬误产生时,需批改申请 的内容后再次发送申请。另外,浏览器会像 200 OK 一样看待该状态 码。
4.4.2 401 Unauthorized
该状态码示意发送的申请须要有通过 HTTP 认证 (BASIC 认证、DIGEST 认证) 的认证信息。另外若之前已进行过 1 次申请,则示意 用 户认证失败。
4.4.3 403 Forbidden
该状态码表明对申请资源的拜访被服务器回绝了。服务器端没有必要给出回绝的具体理由,但如果想作阐明的话,能够在实体的主体局部
对起因进行形容,这样就能让用户看到了。未取得文件系统的拜访受权,拜访权限呈现某些问题 (从未受权的发送源 IP 地址试图拜访) 等列举的状况都可能是产生 403 的起因。
4.4.4 404 Not Found
该状态码表明服务器上无奈找到申请的资源。除此之外,也能够在服务器端拒绝请求且不想阐明理由时应用。
4.5 5XX 服务器谬误
5XX 的响应结果表明服务器自身产生谬误。
4.5.1 500 Internal Server Error
该状态码表明服务器端在执行申请时产生了谬误。也有可能是 Web 利用存在的 bug 或某些长期的故障。
4.5.2 503 Service Unavailable
该状态码表明服务器临时处于超负载或正在进行停机保护,当初无奈 解决申请。如果当时得悉解除以上情况须要的工夫,最好写入 RetryAfter 首部字段再返回给客户端。
状态码和情况的不统一
不少返回的状态码响应都是谬误的,然而用户可能觉察不到这点。比方 Web 应用程序外部产生谬误,状态码仍然返回 200 OK,这种 状况也常常遇到。
最初
我建了一个《图解 HTTP》共读会,感兴趣的搭档能够一起来读(ardenzhaogx)