3

URL vs. URI vs. URN, in More Concise Terms を読み終えたところですが、この 3 つの用語の違いを理解するのに本当に役立ちました。それ以来、次の質問に自信を持って答えるために、RFC2141RFC2616の仕様、および Microsoft の Response.Redirect Methodのドキュメントに目を通しました。

このコード行を考えると:

Response.Redirect("~/Foo.aspx");

そして、この結果の HTTP 応答 (コンテキストのためにトリミングされています):

Status=Found - 302 Date=Wed, 24 Nov
2010 17:27:58 GMT
Server=Microsoft-IIS/6.0
X-Powered-By=ASP.NET
X-AspNet-Version=2.0.50727
Location=/MyWebApp/Foo. aspx

"Location" ヘッダーに配置された内容を最も適切に説明する名前は?

URL? うり?壷?URC? それはどれですか?

4

5 に答える 5

2

これは相対 URI です。

このコンテキストでは、リソースを特定するだけでなく、リソースを特定するためにも使用できるため、これは URL でもありますが、最近では URL について話す価値はほとんどありません。それ自体であり、URL は常に URI です。

于 2010-11-24T17:46:41.590 に答える
1

難しい質問です。単独で (文字列として) Location は URI ですが、それが定義されているコンテキスト (応答ヘッダー リスト) を考慮する必要があります。本質的にはタプル (browser::request::protocol, browser: :request::domain, response::locationHeader) は、リクエストが取得メカニズムを追加するため、URL を構成します。

于 2010-11-24T18:03:54.450 に答える
0

〜/は/MyWebApp/Foo.aspxに解決されます。これは、関連するメカニズムがHTTPであることを宣言していません。宣言されているのは、リダイレクト先の場所だけです。これにより、URLになりますが、http://が明示的に示されていません。

于 2010-11-24T17:43:49.767 に答える
0

LocationヘッダープロパティのURLは、ルート相対URLです。〜/は、〜/ foo.aspxで作成されるURLが、IISのアプリケーションディレクトリに対してルート相対である必要があることを指定します。

于 2010-11-24T17:44:01.957 に答える
0

の解像度はリソースを見つけるための場所とメカニズム( "http")の両方を提供するため、これはUrlですが~/、ヘッダー値LocationはUriを取得するように設計されています。

ヘッダーフィールドの定義

于 2010-11-24T17:39:31.307 に答える