原文出处:http://www.veryitman.com/2019/11/24/%E7%9F%AD%E5%9C%B0%E5%9D%80%E5%8E%9F%E7%90%86/
延伸阅读:
1、c#页面重定向,Server.Transfer 和 Response.Redirect 用法区别
2、asp.net[web.config] httphandlers 与实现自由定义访问地址
【部分摘抄】
HTTP 请求重定向
HTTP 中的 301
、302
、303
、307
、308
响应状态码,都表示重定向的响应。
其中,301
、308
响应状态码表示永久重定向,302
、303
、307
表示临时重定向。
那我们来说一下什么是重定向?
重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)。
举个例子,你要去 A 机构办理一个证件,等你去了之后A机构的某人告诉你他们不再受理此事了,需要你去 B 机构办理,然后你就自己去了 B 机构。这个过程就类似于重定向。
那么,HTTP 协议中定义的这些30X响应状态码就好比 A机构的某人
它们告诉客户端,你需要访问另外一个地址了。
重定向做了两次 HTTP 请求, 第一次,客户端请求 A 服务器,A 响应告诉浏览器,你应该去 B 服务器访问。此时就去访问服务器 B,这个时候你可以看到浏览器中的网址变了,这就是第二次 HTTP 请求。
简单总结一下其步骤如下:
Step-1、用户在浏览器里输入 https://dwz.cn/hnmau4Zs
这个网址去访问;
Step-2、浏览器解析 DNS,获取该域名对应的 IP 地址;
Step-3、获取到 IP 后,浏览器发送 HTTP GET 请求查询 hnmau4Zs
并获取到 https://dwz.cn/hnmau4Zs
对应的长地址;
Step-4、HTTP 通过 302
状态码转到去请求对应的长地址 http://www.veryitman.com/
上面了。
c#页面重定向,Server.Transfer 和 Response.Redirect 用法区别
在ASP.NET中,在后台传值方式目前 大多都是用 Response.Redirect("页面地址") 来重定向页面的,但是现在还有一种方式也可以达到重定向页面的作用,而且在某些时刻会起到一种很棒的效果,那就是使用 Server.Transfer("页面地址") 来重定向地址。
现在我们来详细了解一下这两种重定向页面地址的用法和区别:
Response.Redirect :Response.Redirect 会将地址输出至浏览器,执行重定向操作。但是请注意,在程序执行到Response.Redirect("页面地址") 语句时,会立即中断当前页面的生命周期,直接向客户端返回信息,让客户端进行重定向操作。这个时候页面URL将会显示重定向后的地址。
Server.Transfer :Server.Transfer 是一个很奇特的方法。当使用 Server.Transfer 方法重定向页面时,虽然页面也会被重定向至指定页,但是并不会在浏览器的URL上体现出来,并且若重定向的页面后有参数,也不会显示在浏览器的URL上。