在URI设计的位置段中支持zeroconf名称的最佳方法是什么?
RFC 3986(统一资源标识符(URI):通用语法)没有提到zeroconf,我担心URI语法的设计不能超越DNS解析。理想的答案语法将:
答案 0 :(得分:2)
以下是一些选项:
dnssd://local/_printer._tcp/Fancy printer/
dnssd://Fancy printer._printer._tcp.local
这些字符串是IRI,而不是URI,以解决i18n问题。
另请参阅rendezvous-dev。中的a discussion。
答案 1 :(得分:1)
嵌套URI是另一种向后兼容的方法。嵌套URI定义了与zeroconf等发现协议一起使用的位置。
参见'嵌套统一资源标识符'manuel urena和david larrabeiti
然而,我没有找到证据,这种方法被广泛使用。
答案 2 :(得分:0)
通用资源标识符是查找资源的通用方法。对于国际化,您可能需要检查几乎相同的IRI,但允许完全兼容Unicode。它没有提到Zeroconf的原因是URI是一种通用协议。 Zeroconf可能使用URI作为其发现协议的一部分,但URI永远不会在其协议中使用特定的实现(你不会在其中找到ftp:,https:,mailto:,skype:等)
Zeroconf是一种自动配置网络并发现可用服务的协议。它由三部分组成,地址选择(IPv4 / 6的一部分),名称解析(mDNS)和服务发现(UPnP(微软),DNS-SD(Apple))。现代操作系统支持所有这些开箱即用。
如果我们采用UPnP,则发现基于URI,iirc完成。返回的信息以XML格式提供。 XML可以是任何Unicode编码。如果您是设备驱动程序制造商,则可以在其中放置任何字符。最后阶段可能是演示文稿,这是一个URL,但这是可选的。
URI / URL既支持国际化字符,又只是转义而不是域名部分。
- Abel -