我们在开发过程中经常会看到404 200等状态码,今天一次性搞懂这些状态码的含义以及区别叭。
前言
响应状态码(Status Code):一个十进制数字。
目前RFC标准把状态码分成5类,用数字的第一位表示分类,范围基本上在100~599之间。
图片来源
接下来我们一类一类来看。
1XX
提示信息,表示目前是协议处理的中间状态,还需要后续的操作。
常见状态码有:
“101 Switching Protocols”:表示在HTTP协议的基础上改成其他的协议继续通信,比如WebSocket。
2XX
成功消息,表示请求已经收到并被正常处理。比如200,204
常见状态码有:
“200 OK”:是我们最常见的成功状态码了,表示一切正常。
“204 No Content”:也是表示成功的意思,但是响应头后面没有body数据。
“206 Partial Content”:是HTTP分块下载或断点续传的基础。常常伴随着头字段“Content-Range”。
3XX
重定向,表示资源位置发生移动,需要客户端重新发送请求。
常见状态码有:
“301 Moved Permanently”: 俗称永久重定向,表示此次请求的资源已经不存在了,需要改用新的URI再次访问。
“302 Found”: 俗称临时重定向,表示此次请求的资源还在,但需要暂时用另一个URI来访问。
“304 Not Modified”:表示重定向已经缓存到的文件,即“缓存重定向”。
4XX
客户端错误,表示请求报文有误,服务器无法处理请求,比如常见的403和404。
常见状态码有: “400 Bad Request”:通用错误码,表示请求的报文有错误,但没有具体说是数据格式错误还是URI有问题,所以应该尽量避免返回400。
“403 Forbidden”:表示服务器禁止访问资源。原因可能是没有权限、信息敏感或者法律禁止。
“404 Not Found”:这个比较熟悉了,表示资源在本服务器中未找到。
5XX
服务器错误,表示服务器在处理请求时内部发生了错误。
常见状态码有:
“500 Internal Server Error”:也是通用错误码,虽然不利于调试,但是能够防止黑客的窥探或者分析。
“501 Not Implemented”:表示客户端请求的功能还不支持。类似那种“即将开业,敬请期待”。
“502 Bad Gateway”:通常是服务器作为网关或者代理的时候返回的错误码,表示服务器自身工作正常,访问后端服务器时发生了错误,但也无法确定具体原因。
“503 Service Unavailable”:表示服务器很忙,暂时无法响应服务,所以在503响应中通常有一个"Retry-After"字段,指示客户端可以在多久之后再次尝试发送请求。
结语
以上就是常见的五类状态码啦,希望能对你有一点帮助~~