uri - CoAP 的链接格式资源的基本 uri 是什么
问题描述
当我阅读关于以链接格式确定上下文 URI 的规则的RFC6690时
我不明白“链接格式资源的基本uri”是什么意思
2.1。目标和上下文 URI
每个链接都将一个目标 URI 作为尖括号 ("<>") 内的 URI 引用。链接的上下文 URI(在 [ RFC3986 ] 中也称为基本 URI)由本规范中的以下规则确定:
(a) 上下文 URI 在指定时设置为锚参数。
我的理解:只需检查“锚”属性
(b) 目标 URI 的来源,当指定时。
我的理解:如果目标 URI 是绝对 uri(包含原点),则使用其原点(没有路径和查询)作为上下文
(c)链接格式资源的基础 URI 的来源。
我的理解:我迷路了,我应该在哪里寻找这个基础uri?
我了解来源被定义为 URI 方案、主机名和端口号的组合
我也明白 Base URI 是一个绝对 URI,相对 URI 可以解析。
但我不明白“base uri”在 RFC6690 第 2.1 节的上下文中是什么意思
如果资源目标 uri 不是绝对 uri 并且没有来源,那么如何找到链接格式资源的基本 uri 的来源?
解决方案
RFC6690 在这里混合了一些概念(“链接的上下文 URI(也称为基本 URI[...])”——上下文和基本 URI 是不同的概念)。此处的基本 URI 是指锚属性指向的 URI(如果缺少该属性,则默认为请求文档的 URI)。
普遍的解释似乎是链接的上下文是根据请求的 URI 的来源解析的锚属性(当没有锚时,它是请求的 URI 的来源),链接的目标是尖括号之间的部分解决了上下文的起源。这并不完全是那里写的,但至少它适用于同一文档中给出的示例。
那里列出的规则非常混乱(而且,最糟糕的是,与 Link 标头中非常相似的规则不同),即使您严格遵守它们,您也无法期望互操作性:在我调查的所有实现中CoRE 邮件列表,没有人在决议中正确考虑了锚点。我建议你坚持使用 Limited Link Format(在Resource Directory Draft 中定义),它与 Link headers 和 RFC6690 的解析步骤兼容,并附有演练。
(从长远来看,我对所有链接格式都被CorAL取代寄予厚望,但进展还不够远,我建议在生产环境附近的任何地方实施它。)
推荐阅读
- kubernetes - 写入 pod 中的 Secret 文件
- python - 从文件中提取字符串之间的信息并写入 csv
- excel - 使用比较器对 VBA 中的对象集合进行排序
- java - Undeterministic behavior JpaRepository
- php - Laravel response return incorrect status code
- node.js - 引导微服务时获取 ConfigService 的正确方法
- c# - How can I combine marquee scrolling and transparency into a label control
- bash - “... && ... || ...”(短路布尔值)与“if ...; then ...; else ...; fi”不同
- c# - HttpClient POST to Web API returns 400 Bad Request
- css - 从谷歌 API 为 Joomla 菜单添加字体