4. Link Relation Types (链接关系类型)
链接关系类型 (Link relation types) 标识资源之间链接的语义。
目的
语义识别 (Semantic Identification)
- 定义关系的含义
- 示例: "copyright" 表示目标包含版权条款
- 可以指示目标资源属性或行为
- 示例: "service" 暗示协议接口
不是媒体类型 (Not Media Types)
关系类型与媒体类型不同:
- 不识别表示格式
- 只描述资源之间的关系
- 媒体类型由 Content-Type 头部确定
关系类型的类型
4.1. Registered Relation Types (注册关系类型)
特征:
- 在 IANA 注册的明确定义的标记
- 促进跨应用程序的重用
- 不区分大小写的比较
- 必须符合
reg-rel-typeABNF 规则
命名指南:
- 适当的特定性级别
- 应用特定语义 → 特定名称
- 通用语义 → 通用名称
约束:
- 绝对不能 (MUST NOT) 约束上下文 IRI 媒体类型
- 绝对不能 (MUST NOT) 约束目标 IRI 媒体类型
- 可以 (CAN) 指定目标资源行为
- 可以 (CAN) 指定允许的 HTTP 方法/媒体类型
应用数据 (Application Data):
- 注册表可以包括应用特定数据
- 示例: 浏览器归档行为
- 通过链接关系应用数据注册表注册
4.2. Extension Relation Types (扩展关系类型)
定义:
- 唯一标识关系类型的 URI
- 用于不使用注册类型的应用程序
- URI 可能指向语义定义
使用指南:
- 客户端不应该 (SHOULD NOT) 自动访问 URI
- 避免服务器负担
- 比较: 不区分大小写的字符串匹配
- 推荐使用小写 URIs
序列化 (Serialization):
- 在 Link 头部中要求是绝对 URIs
- 如果包含分号 (;) 或逗号 (,) 则必须引号
- 其他序列化可能使用不同形式 (例如 CURIEs)