如何使用301和302跳转
301是永久重定向的状态码,302是临时重定向的状态码。一般来说,301跳转多用于网站改版时新旧网站的对接,302跳转一般用于404页面的跳转(如果我们访问一个网站出错,会被服务器设置成访问404页面,这时用302跳转直接从错误页面跳转到首页)。这是最常用的方法。
404页面
网站后台和空间后台是不同的,空间后台不让登可以去购买空间时的服务商咨询客服。登录网站后台如果跳转,那就是空间出问题了,登录后台空间后设置正确就行。
原因在于所连接的页面进行了Redirect。
2302 Found 类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。注意,在HTTP10中对应的状态信息是“Moved Temporatily”,而在HttpServletResponse中相应的常量是SC_MOVED_TEMPORARILY,而不是SC_FOUND。出现该状态代码时,浏览器能够自动访问新的URL,因此它是一个很有用的状态代码。
3所以,Servlet也提供了一个专用的方法,即sendRedirect。使用responsesendRedirect(url)比使用responsesetStatus(responseSC_MOVED_TEMPORARILY)和responsesetHeader("Location",url)更好。原因有以下几点:
(1)使得整个网页代码更加简洁
(2)使用sendRedirect,Servlet会自动构造一个包含新链接的页面(用于那些不能自动重定向的老式浏览器)
(3)sendRedirect能够处理相对URL,自动把它们转换成绝对URL。 注意这个状态代码有时候可以和301替换使用。例如,如果浏览器错误地请求http://host/~user(缺少了后面的斜杠),有的服务器返回301,有的则返回302。
4严格地说,我们只能假定只有当原来的请求是GET时浏览器才会自动重定向。
:
出现302错误的原因是由于后端代码写了拦截器Filter,当从网站A访问带有某关键词路径的接口时就会被拦截,因而我将网站A要访问的接口的关键词进行了修改,使其不会被拦截器拦截,就能正常从后端获取数据了。
2302是http重定向。302 redirect: 302 代表暂时性转移(Temporarily Moved )。
3302转向可能会有URL规范化及网址劫持的问题。可能被搜索引擎判为可疑转向,甚至认为是作弊。
参考资料:
浏览器和服务器的实现并没有严格遵守HTTP中302的规范,服务器不加遵守的返回302,浏览器即便原请求是post也会自动重定向,导致规范和实现出现了二义性。
所以HTTP 11中将302的规范细化成了303和307
继承了HTTP 10中302的实现(即原请求是post,也允许自动进行重定向,结果是无论原请求是get还是post,都可以自动进行重定向)。
307则继承了HTTP 10中302的规范(即如果原请求是post,则不允许进行自动重定向,结果是post不重定向,get可以自动重定向)。
0条评论