你能举一个私人使用的URN的例子吗
Posted
技术标签:
【中文标题】你能举一个私人使用的URN的例子吗【英文标题】:Can you give an example of a URN for private-use 【发布时间】:2015-07-31 10:58:29 【问题描述】:根据***,
urn:<NID>:<NSS>
前导 urn: 序列不区分大小写。
<NID>
是命名空间标识符,它决定了语法<NSS>
的解释,命名空间特定的字符串。功能性的 RFC 1737 中描述了统一资源名称的要求。[5]
来源:http://en.wikipedia.org/wiki/Uniform_resource_name
然后它继续说实验性 NID 的前缀是 X-
,然后说:
RFC 6648 不赞成对新 ID 名称使用“X-”表示法,但 不建议替换现有的“X-”名称,并且确实 不覆盖需要使用“X-”的现有规范。 [7]
那么现在呢?
如果我想为私有系统中的某些标识符组成一个 URN,我该如何正确命名它们?
我的直觉告诉我,x-
前缀没有任何好处,因为两个开发人员可以很容易地开始使用urn:x-foo
,这与他们刚刚选择urn:foo
并没有什么不同,除了也许很明显,它没有在 IANA 正式注册。
因此,我们应该尝试制作一些独特的东西,并尽最大努力检查它是否存在。对吧?
【问题讨论】:
【参考方案1】:As far as I know、RFC 6648 不会使experimental NIDs (as defined by RFC 3406) 无效。
draft for the next RFC about URNs(当前)已按照 RFC 6648 的建议删除了实验性 NID(使使用 x-
的 URN 无效)。
我的直觉告诉我,
x-
前缀没有任何好处,因为两个开发人员可以很容易地开始使用urn:x-foo
,这与他们刚刚选择urn:foo
并没有什么不同,除了也许很明显,它没有在 IANA 正式注册。
嗯,RFC 3406 defines 那
没有规定避免实验性 NID 的冲突
他们是
旨在在内部或有限的实验环境中使用。
因此,首先,您不应该以其他方(不知道您对这些实验性 NID 的使用/定义)会遇到它们的方式使用实验性 NID。 或者换句话说:实验性 NID 的冲突应该没有问题,因为每一方都应该只在内部或实验性地使用它们,并且不应该期望能够对不受其控制的实验性 NID 做任何有用的事情。
所以……
如果您只想将 URN 用于私人目的,您仍然可以使用 X-
NID(按照 RFC 3406),直到它被新的 RFC 淘汰。或者,您可以从 example
NID 铸造 URN。
如果您想公开/严肃地使用 URN,您希望它们是唯一的(避免冲突)和定义的(使它们对其他作者和消费者有用)。这就是 URN 的全部意义,对吧?为此,您必须注册您的 NID。
如果您不想注册,请不要使用 URN。还有许多其他URI schemes 可用(例如,Tag URIs 想到了)。
【讨论】:
我认为这会有所帮助,谢谢。我会等待更多的选票。对于与编程语言无关的完全限定名称,URN 看起来是一个不错的选择。因此,与其努力成为独一无二的,我应该努力保持它们的私密性。以上是关于你能举一个私人使用的URN的例子吗的主要内容,如果未能解决你的问题,请参考以下文章
ActiveMQ 是干啥的?有啥作用?能举个实际开发的例子吗