网页跳转
自己的一点理解,可能不对。
服务器端跳转和客户端的跳转的区别:
* 服务器端的跳转是在浏览器进行同一次请求的情况下进行的,服务器给出不同的资源来回应。此时的浏览器的url应该是不变的。
* 客户端的跳转就是浏览器的url改变了,是一次新的请求,然后这次新的请求对于服务器是要经行新的反映的,就有点像JavaEE中的转向的概念。比如在html中的meta标签里面添加的refresh属性进行的客户端跳转。比如:
"meta http-equiv="refresh" content="5" "五秒后跳转到本页。
"meta http-equiv="refresh" content="5; url=http://www.baidu.com/" "五秒后跳转到百度首页
(不知道为什么博客园的编辑区没有用代码的标签,上面两行刚刚不能显示出来,可能是浏览器将这两行理解成要进行跳转的了。)
接下来就来说说关于客户端跳转中的几种常见方法:
* 第一种就是上面说的运用meta标签里的refresh进行。
* 第二种方法就是通过javascript中的window.location对象来实现:而这其中又分为两种方法:
1. 第一种是通过window.location.href="www.baidu.com";这样的方法
2. 第二种就是通过window.location.repace("www.baidu.com"),这两种方法都可以通过在chrome中按F12的console下来验证。
以下是服务器端跳转的几种方式:
1.在php中用header:这是w3cshool中关于php header的具体定义和使用方法。
例如:
就会将页面重定向到baidu.com此时返回的状态码是302(关于http响应报文的格式及其响应代表的内容,参考上一篇的http报文简析),这种方法是302跳转的方法。这种方法是301的跳转方法,还可以这样写:
header('location:http://baidu.com',true,301);
关于301和302的区别:
302是暂时性转移的,临时重定向到这个页面,比较容易,但是对于搜索引擎是不太友好的,301是永久的转移。