301与302 页面返回代码汇总

JSP/Servlet编程中response.sendRedirect方法就是使用HTTP协议中的重定向机制。它与JSP中的<jsp:forward …>的区别在于后者是在服务器中实现页面的跳转,也就是说应用容器加载了所要跳转的页面的内容并返回给客户端;而前者是返回一个状态码,这些状态码的可能值见下表,而后客户端读取须要跳转到的页面的URL并从新加载新的页面。就是这样一个过程,因此咱们编程的时候就要经过HttpMethod.getStatusCode()方法判断返回值是否为下表中的某个值来判断是否须要跳转。若是已经确认须要进行页面跳转了,那么能够经过读取HTTP头中的location属性来获取新的地址。算法

状态码
对应 HttpServletResponse 的常量
详细描述
301
SC_MOVED_PERMANENTLY
页面已经永久移到另一个新地址
302
SC_MOVED_TEMPORARILY
页面暂时移动到另一个新的地址
303
SC_SEE_OTHER
客户端请求的地址必须经过另外的 URL 来访问
307
SC_TEMPORARY_REDIRECT
同 SC_MOVED_TEMPORARILY编程

 

301的含义是“永久重定向”,而302的含义是“临时重定向”
301 表明永久性转移是网页更改地址后对搜索引擎友好的最好方法,只要不是暂时搬移的状况,都建议使用301来作转址。服务器

因为搜索引擎排名算法只是程序而不是人,在遇到302重定向的时候,并不能像人同样的去准确断定哪个网址更适当,这就形成了网址URL劫持的可能性。也就是说,一个不道德的人在他本身的网址A作一个302重定向到你的网址B,出于某种缘由, Google搜索结果所显示的仍然是网址A,可是所用的网页内容倒是你的网址B上的内容,这种状况就叫作网址URL劫持。你辛辛苦苦所写的内容就这样被别人偷走了。jsp

相关文章
相关标签/搜索