web-dev-qa-db-ja.com

http:// *:80とhttp:// +:80の違いは何ですか

Web Deploy について学習しているときに、http:// +:80とhttp:// *:80について説明するnetsh.exeコマンドに出くわしました。それらはどういう意味ですか?

56
kenwarner

RLPrefix Strings(Windows) から引用:

UrlPrefixのHost要素が単一のプラス記号(+)で構成されている場合、UrlPrefixは、そのスキーム、ポート、およびrelativeURI要素のコンテキストで可能なすべてのホスト名と一致し、強力なワイルドカードカテゴリに分類されます。

アスタリスク(*)がHost要素として表示されている場合、UrlPrefixは弱いワイルドカードカテゴリに分類されます。この種類のUrlPrefixは、指定されたスキーム、ポート、およびrelativeURIに関連付けられているホスト名と一致しますが、強いワイルドカード、明示的、またはIPバインドされた弱いワイルドカードのUrlPrefixとはまだ一致していません。このホスト仕様は、状況によってはデフォルトのキャッチオールとして使用できます。または、多くのUrlPrefixを使用せずにURL名前空間の大部分を指定するために使用できます。

その後の:80は、ワイルドカード文字列と一致するURLにアクセスしているポートを示します。 80は、通常のWebページにアクセスするために使用される最も一般的なポートの1つです。

53
rownage

いくつかの基本的な言葉で、 "*"は、他に誰もしなかった場合にリクエストを処理し、 "+"他のハンドラーによって処理された場合でも、リクエストを処理します。

https://stackoverflow.com/a/9459679/6375269 からの良い例

http:// *:8080 /:他のHttpListenerによってまだ処理されていないすべてのHTTPリクエストをポート8080で受信します。

http:// +:8080 / :別のHttpListenerによって既に処理されている場合でも、ポート8080ですべてのHTTPリクエストを受信します。

7
Kroksys