Response.Redirect究竟做了什么(“〜/…”)放入HTTP响应?

我刚刚用更简洁的术语读完了URL与URI与URN的比较,这真的有助于理解这三个术语之间的区别。从那时起,我已经浏览了RFC2141和RFC2616规范以及Microsoft的Response.Redirect Method文档,以便自信地回答以下问题。 鉴于这行代码:
Response.Redirect("~/Foo.aspx");
这导致HTTP响应(为上下文修剪):   状态=发现 - 302日期= 11月24日星期三   2010 17:27:58 GMT   服务器=微软IIS / 6.0   X供电,通过= ASP.NET   X-ASPNET-版本= 2.0.50727   位置= / MyWebApp / Foo.aspx 什么名称最恰当地描述了“位置”标题中的内容? 网址是什么? URI?瓮? URC?这是什么?     
已邀请:
这是一个相对的URI。 它也是一个URL,因为它可以在这个上下文中用于定位资源以及识别它,但是现在谈论URL几乎没什么价值 - 区别更多的是你正在做什么而不是什么它本身就是一个URL,URL始终是一个URI。     
这是一个棘手的问题。单独(作为字符串)Location是一个URI,但您必须考虑定义它的上下文(即响应头列表) 从本质上讲,元组(browser :: request :: protocol,browser :: request :: domain,response :: locationHeader)构成一个URL,因为请求添加了一个检索机制。     
〜/解析为/MyWebApp/Foo.aspx,它没有声明涉及的机制是HTTP;所有它声明的是被重定向到的位置 - 这使它成为一个URL,虽然它没有在那里明确说明http://。     
Location头属性中的URL是根相对URL。 〜/指定使用〜/ foo.aspx创建的URL应该是相对于IIS中的应用程序目录的根目录。     
它是一个Url,因为
~/
的解析提供了查找资源的位置和机制(“http”),但是,标题值Location用于获取Uri。 标题字段定义     

要回复问题请先登录注册