HTTP从入门到懵逼学习笔记(四)

HTTP状态码

 状态码是什么想必都知道,状态码的作用是描述返回的请求结果,我们平时访问网站时有些时候出现的404,500这些就是状态码。下图是状态码的类别图。

image.png

 HTTP状态码的种类很多,多达60余中,但是平时常用的大概只有14种左右,下面我们来仔细看一下这14种状态码。

1.200 OK

表示客户端发来的请求在服务器端被正常处理了。

2.204 No Content

便是服务器接收到的请求已成功处理,但返回的报文中不含实体的主体部分。一般用于只需要从客户端往服务器发送信息,而对客户端不需要发送新信息内容的情况下使用。

3.206 Partial Content

表示客户端进行了范围请求,服务器成功执行了请求范围的GET请求。

4.301 Moved Permanently

表示请求资源已被分配新的URI,以后应使用资源现在所指的URI。属于永久性重定向。

5.302 Found

与301类似,都表示表示请求资源已被分配新的URI,但是属于临时重定向。

6.303 See Other

303我觉得像是302的细化的一个状态码。这儿顺便说一下,当301,302,303响应状态码返回时,浏览器会自动将POST改为GET,并删除请求报文中的主体,之后请求自动再次发送。但是301,302中是禁止将POST改为GET的,虽然实际使用中大家并未遵行这个标准。303和302有着相同的功能,但是303是明确表示客户端应当采用GET方法获取资源。

7.304 Not Modified

客户端发送附带条件的请求(如If-Match,If-Modified-Since,If-None-Match,If-Range,If-Unmodified-Since),虽然服务器找到资源,但是不符合条件。和重定向无关。

8.307 Temporary Redirect

和上述的302有着相同的定义,但是307表示不会将POST变为GET。

9.400 Bad Request

表示请求报文中存在语法错误。

10.401 Unauthorized

表示发送请求需要HTTP认证的认证信息,若认证后还有,则表示认证失败。

11.403 Forbidden

表示请求被服务器拒绝,一般未获得文件系统访问权限,从未授权的发送源IP试图访问等情况都可能发生403。

12.404 Not Found

喜闻乐见的404,表示服务器上无请求资源。

13.500 Internal Server Error

表示服务器执行请求发生错误,有可能是web端bug导致或某些临时故障。

14.503 Service Unavailable

表示服务器暂时处理超负荷或正在进行停机维护,现在无法处理请求。(预知解决时间,在写入Retry-After首部字段返回给客户端)

最后需要注意的是:状态码和真实状况不一致的情况也有可能会发生。


参考资料:《图解HTTP》+无所不知的度娘+各位大佬的博客(文中图片均来自《图解HTTP》)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容