区分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后地址不变,隐藏了新网页的地址及附带在地址后边的参数值,具有一定的隐蔽性
posted @ 2009-02-03 14:36  leeolevis  阅读(172)  评论(0编辑  收藏  举报