区分Response.Redirect和Server.Transfer
在实现页面跳转的时候,很多人都喜欢,或者是习惯性的使用Response.Redirect,我也是。在我的页面静态化中,我就使用到了,昨天有 位兄弟告诉我,这样对搜索引擎很不友好;我不是做SEO的,对这个没研究;直观的想想也是,Response.Redirect 会返回给客户端状态302,爬虫可能认为这是一个欺骗跳转。那么有什么办法解决呢?
查过msdn,实现跳转的还有一个方法:Server.Transfer,那么二者有什么区别呢?
1、Response.Redirect
- 浏览器ASPX文件请求->服务器执行->遇到response.redirect语句->服务器发送response.redirect后面的地址给客户机端的浏览器->浏览器请求执行新的地址,并会返回一个302状态。
- Response.Redirect可以切换到任何存在的网页
- Response.Redirect后地址会变成跳转后的页面地址
2、Server.Transfer
- 浏览器ASP文件请求->服务器执行->遇到Server.Transfer语句->服务器转向新的文件->新数据传输到客户端,状态200
- Server.Transfer只能切换到同目录或者子目录的网页
- Server.Transfer后地址不变,隐藏了新网页的地址及附带在地址后边的参数值,具有一定的隐蔽性