基础 - 常见状态码 ¶
作者:KK
发表日期:2017.11.29
前言 ¶
HTTP状态码有很多种,都是3位数状态码,分别有1、2、3、4、5开头,没有6开头,除非你自定义。
上网搜“ HTTP状态码 ”就有许多状态码大全可以查了,这里只介绍常见的,至少是我工作了5年所碰到的。
常见状态码列表 ¶
200
:通讯正常。301
:永久重定向到别的URL。既然重定向,那就要说明重定向到哪个URL:
同步请求的时候重定向URL在
Location
响应头里。ajax请求的时候重定向URL在
X-Redirect
响应头里。
302
:临时重定向。同上,啰嗦一下:
同步请求的时候重定向URL在
Location
响应头里。ajax请求的时候重定向URL在
X-Redirect
响应头里。
304
:所请求的资源没有被修改过。通常被浏览器缓存过的CSS、JS再次被请求的时候会被服务器如此响应,并且不会附带数据的报文内容,浏览器收到304后直接会从浏览器缓存里调取缓存的文件进行页面渲染。
400
:坏的请求。指的是请求报文的主义不正确,或者参数不正确,没有按照http接口文档构造报文导致的。
401
:要求对客户端进行http基础认证(Http Basic Auth)403
:被禁止。服务器拒绝执行这个地址请求。
如果是Linux服务器,通常是因为没有将主机目录授权给www用户,比如我通常会执行
chown -R www:www /data/www/project1
来授权给www用户。如果是Windows下开发遇到这个,那通常因为主机目录根本不存在。
404
:找不到这个地址资源。405
:请求方法不允许。通常在 RESTFul 风格的URL设计下会发生这种问题,客户端忽略了限制的请求方法,用错了方法就会这样。
500
:服务器出错。这时候并没有具体说出什么错,可能是http服务器出错,也可能是服务端语言运行出错,如果是编程语言的问题,还可以自己决定是否要将错误信息暴露在响应报文中,一般不会这么做,此时往往应该写日志提供故障排查支持。
502
:网关出错。比如DNS解析不出结果或者DNS指向了一个无效的IP往往会这样;还有一种情况就是本地开了代理,而这个代理出了问题甚至它无法帮我们将host解析成正确的IP。
503
:服务不可用。见是见过,但少见,忘记什么情况下会发生的了。