【发布时间】:2011-06-03 15:30:44
【问题描述】:
在了解Web Deploy 时,我遇到了一些涉及http://+:80 和http://*:80 的netsh.exe 命令。这些是什么意思?
【问题讨论】:
在了解Web Deploy 时,我遇到了一些涉及http://+:80 和http://*:80 的netsh.exe 命令。这些是什么意思?
【问题讨论】:
引用自URLPrefix Strings (Windows):
当 UrlPrefix 的主机元素由单个加号 (+) 组成时,UrlPrefix 匹配其方案、端口和 relativeURI 元素上下文中所有可能的主机名,并属于强通配符类别。
当星号 (*) 作为宿主元素出现时,UrlPrefix 属于弱通配符类别。这种 UrlPrefix 匹配与指定方案、端口和 relativeURI 关联的任何主机名,这些主机名尚未被强通配符、显式或 IP 绑定的弱通配符 UrlPrefix 匹配。 在某些情况下,此主机规范可用作默认的包罗万象,或者可用于指定大部分 URL 命名空间,而无需使用许多 UrlPrefix。
之后的 :80 显示您访问与通配符字符串匹配的 URL 所通过的端口。 80 是用于访问普通网页的最常见(如果不是最常见的话)端口之一。
【讨论】:
简单来说,"*" 会在没有其他人处理的情况下处理请求,而 "+" 会处理请求,即使它已由任何其他处理程序处理。
取自https://stackoverflow.com/a/9459679/6375269的一个很好的例子
http://*:8080/:在端口 8080 上接收所有非 HTTP 请求 已经被其他一些 HttpListener 处理了。
http://+:8080/: 在端口 8080 上接收所有 HTTP 请求,即使它们是 已由另一个 HttpListener 处理。
【讨论】: