Skip to main content

4. Link Relation Types (链接关系类型)

链接关系类型 (Link relation types) 标识资源之间链接的语义。

目的

语义识别 (Semantic Identification)

  • 定义关系的含义
  • 示例: "copyright" 表示目标包含版权条款
  • 可以指示目标资源属性或行为
  • 示例: "service" 暗示协议接口

不是媒体类型 (Not Media Types)

关系类型与媒体类型不同:

  • 不识别表示格式
  • 只描述资源之间的关系
  • 媒体类型由 Content-Type 头部确定

关系类型的类型

4.1. Registered Relation Types (注册关系类型)

特征:

  • 在 IANA 注册的明确定义的标记
  • 促进跨应用程序的重用
  • 不区分大小写的比较
  • 必须符合 reg-rel-type ABNF 规则

命名指南:

  • 适当的特定性级别
  • 应用特定语义 → 特定名称
  • 通用语义 → 通用名称

约束:

  • 绝对不能 (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)

注册表: IANA Link Relation Types