重定向和转发

转发是WEB服务器使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程。

重定向是第一个页面通知浏览器发送一个新的页面容器请求。因此,当你使用重定向时,浏览器中所显示的URL会变成新页面的URL, 而当使用转发时,该URL会保持不变。

重定向的速度比转发慢,因为浏览器还得发出一个新的请求。同时,由于重定向方式产生了一个新的请求,所以经过一次重定向后,request内的对象将无法使用。

怎么选择是重定向还是转发呢?

通常情况下转发更快,而且能保持request内的对象,所以对于服务器编程它是第一选择。但是由于在转发之后,浏览器中URL仍然指向开始页面,此时如果重载当前页面,URL所对应页面将会被重新调用。如果你不想看到这样的情况,则选择重定向。

转发和重定向的区别
    重定向:以前的request中存放的变量全部失效,并进入一个新的request作用域。
    转发:以前的request中存放的变量不会失效,就像把两个页面拼到了一起。


对于重定向另一种说法(只是对重定向做了解释)

重定向与转发
·重定向
路由重定向: 路由构造http应答,在http头中写入302和重定向到的地址(重定向过程最终由IE实现,IE地址栏会发生改变)
Web重定向(貌似透明代理): 路由直接将请求发送到重定向到的SP,相应地SP将所请求的内容返回(重定向过程隐藏由路由实现,IE与SP都不会知道)

·转发
服务器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程。

posted @ 2010-11-06 13:43  dzqabc  阅读(2230)  评论(0编辑  收藏  举报