【HTTP】-------- 状态码
状态码类别
类别 | 原因短语 | |
---|---|---|
1XX | informational(信息性状态码) | 接收的请求正在处理 |
2XX | Success(成功状态码) | 请求正常处理完毕 |
3XX | Redirection(重定向状态码) | 需要进行附加操作以完成请求 |
4XX | Client Error(客户端错误状态码) | 服务器无法处理请求 |
5XX | Server Error(服务器错误状态码) | 服务器处理请求出错 |
常见状态码详解
-
200:表示响应成功
-
301:客户端跳转,永久性跳转
为了实现301永久性跳转,需要在servlet加入如下代码
response.setStatus(301);
response.setHeader("Location", "http://www.baidu.com");
效果演示
再次请求效果,对比两次Status Code字段,说明301永久重定向 缓存了该资源
-
302:客户端跳转,临时跳转
注意需要去掉上面的代码,改为response.sendRedirect("http://www.baidu.com");
效果演示
301和302状态码的区别
(1) 对于301的请求,浏览器默认会给一个很长的缓存,而302的请求是不缓存的
(2) 302转向可能会有URL规范化及网址劫持的问题。可能被搜索引擎判为可疑转向,甚至认为是作弊。
例子说明:张三在自己的网址A做一个302重定向到李四的网址B,由于某种原因,Google搜索结果所显示的仍然是网址A,但是所用的网页内容却是李四的网址B上的内容,这种情况就叫做网址URL劫持。李四网址内容被张三偷走了。
因此,301好处是:
1.没有网址规范化的问题
2.张三的网页A的PR网页级别会传到网页B
- 400:请求报文存在语法错误
例子:前端发送表单数据时,如果参数名称无法与entity层的实体类对应上,就可能报400(Bad Request)错误啦
后续会在回顾ssm框架的时候,补上代码进行解释说明,这里的400常发生在ssm框架中 - 404:访问的页面不存在
服务器上无法找到请求的资源,除此之外,也可以在服务器端拒绝请求且不想说明理由时使用 - 500:服务端错误
服务端在执行请求时发生了错误,也有可能是Web应用存在的bug或某些临时的故障
============================================================
- 其它状态码平时在项目中挺少遇到的,自己还是学的不够多吧。发现缓存这一块还是有很多要挖掘的地方,后续会继续恶补知识点。
- 第一次写博客,好多内容不足啊,后续会在学习的过程中的进行更改和补充的~~
- 发现很多东西需要自己敲一遍,印象才更深刻~