调试毕设,经常报错,网上查找解决办法时看到建议开发人员要牢记HTTP状态码。
然后自己反思了下,的确忽视了这个问题,平时都是报错后直接copy错误信息到百度上搜索解决办法,从没有静下心来仔细思考过,所以现整理下HTTP状态码,以后多思考多总结!
HTTP状态码
HTTP状态码也称为应答码,它反映了Web服务器处理HTTP请求的状态。HTTP应答码由3位数字构成,其中首位数字定义了应答码的类型:
1XX-信息类:
表示收到Web浏览器请求,正在进一步的处理中。
2XX-成功类:
表示用户请求被正确接收,理解和处理。
- 200,OK,客户端请求成功。
3XX-重定向类:
表示请求没有成功,客户必须采取进一步的动作。
- 301 Redirect,永久重定向(搜索引擎在抓取新的内容的同时,也将旧的地址替换为新的地址)。
- 302 Redirect,暂时重定向(搜索引擎会抓取新的内容,但是保留旧的地址,因为服务器返回的是302,所以搜索引擎认为新的地址是暂时的)。
4XX-客户端错误:
表示客户端提交的请求有错误。
- 400 Bad Request:请求存在语法错误或参数有误。
- 429 Too Many Requests,由于请求频次达到上限而被拒绝访问。
- 410 Gone,当前请求的资源已不再可用(已删除或废弃,当调用老版本API的时候很有用。实际业务中:访问一个资源时先去数据库中查找对应的数据,找不到数据时返回404,找到数据但数据已被标记为删除时返回410。https://www.chrisyue.com/is-it-worth-to-try-410-http-code.html)
- 404 NOT Found,请求的资源不存在,例如输入了错误的url。
- 403 Forbidden,服务器收到请求,但拒绝提供服务(可能是因为服务器上文件或目录权限原因导致)。
- 401 Unauthorized,请求未经授权需验证(解决方法:添加IIS匿名用户,在控制面板中)。
5XX-服务器错误:
表示服务器不能完成对请求的处理。
- 500 Internal Server Error:服务器内部错误,无法完成请求(一般是服务器源代码错误)。
- 503 Server Unavailable:服务器暂时无法使用,一般由于超载或停机维护,一段时间之后可能恢复正常。
- 504 Gateway Timeout:网关超时。
- 505 Version Not Supported:服务器不支持请求中所用的HTTP协议版本。
什么情况下需要301重定向?
网站更换域名时,通过301永久重定向将旧域名重定向至新域名,挽回流量损失和SEO;
如果你有多个闲置域名时需要指向同一网站时,可以通过301永久重定向实现;
你打算实现网址规范化,例如:不带www的域名和带www的域名,实现网址的统一。
如何实现重定向?
- thinkphp可以使用redirect方法实现页面重定向(跳转)
$this->redirect(string url)
- header()函数
//重定向浏览器
header("Location: http://blog.csdn.net/abandonship");
//确保重定向后,后续代码不会被执行
exit;
- script标签
echo '<script>window.location.href="http://www.baidu.com"</script>';
对于Web开发人员来说掌握HTTP应答码有助于提高Web应用程序调试的效率和准确性,在接口开发的时候也应该养成返回和判断正确的状态码的习惯。