Response.Redirect(),Server.Transfer(),Server.Execute()的区别和原理
当被问及Asp.net页面跳转方式是,我们不难回答出有Response.Redirect(),Server.Transfer(),Server.Execute()这三种,但是其中的区别以及各自的原理估计很多人都理解的不透彻,最新仔细研究了一下其中的区别,写下本文以做备忘。同时希望可以帮助到读者。
Response.Redirect():
Response.Redirect方法导致浏览器链接到一个指定的URL。当Response.Redirect()方法被调用时,它会创建一个应答,应答头中指出了状态代 码302(表示目标已经改变)以及新的目标URL。浏览器从服务器收到该应答,利用应答头中的信息发出一个对新URL的请求。 这就是说,使用Response.Redirect方法时重定向操作发生在客户端,总共涉及到两次与服务器的通信(两个来回):第一次是对原始页面的请求,得到一个302应答,第二次是请求302应答中声明的新页面,得到重定向之后的页面。以下是原理图: