URI 方案中的分层协议是否有公认的标准或替代符号(即 git+ssh://)?

Are there accepted standards or alternative notations to layered protocols in URI schemes (ie git+ssh://)?

首先让我说,我知道 git+ssh:// 示例不是一个很好的示例,因为它是多余的,在实践中不需要。

我的问题的精神是关于嵌套的 URL 方案(可能很深),以及如何表达一个特定的应用层协议,该协议可能 运行 在一个或许多其他传输替代本机传输。

例如,如果我正在制作 "chargen" 服务,并且我设置了一个 GUI 桌面应用程序来处理 chargen://example.com:19/,那将非常简单。但是如果我想支持一个可以 运行 在 https 之上的 chargen 版本,我需要表达这一点。我还希望能够单击 hyperlink 并让适当的应用程序处理程序负责该协议。所以按照 git 的例子,它可能看起来像 chargen+https://example.com/ 或者 chargen://https://example.com/

在现实世界中,我最近使用了一项提供已发布日历供订阅的服务,并分享了一个看起来像 webcal://host.example.com/calendar/xyz 的 link。不幸的是,它没有携带足够的信息来指示资源是 HTTP 还是 HTTPS。 (当然应该是HTTPS,但我的重点是寻求能够明确分层协议的能力)。

总结一下我的实际问题,我正在寻找能够清楚明确地指定如何解析通过多层协议提供的服务的标准或良好采用的做法。

我刚刚遇到 IANA's list of URI schemes,看来确实有 a+b:... 风格的既定先例。这对我来说已经足够了。