跳到主要内容

4. Link Relation Types - 链接关系类型

link relation type 用于标识资源之间 link 的语义.

目的

语义标识

  • 定义该关系的含义
  • 示例: "copyright" 表示 target 包含 copyright 条款
  • 可以指示 target resource 的属性或行为
  • 示例: "service" 表示一个 protocol interface

不是 Media Types

relation type 与 media type 不同:

  • 不标识表示格式
  • 仅描述资源之间如何相关
  • media type 由 Content-Type header 决定

relation type 的类型

4.1. Registered Relation Types

特征:

  • 在 IANA 注册且定义明确的 token
  • 促进跨应用复用
  • 比较时不区分大小写
  • 必须符合 reg-rel-type ABNF 规则

命名指南:

  • 使用适当的具体程度
  • 应用特定语义 -> 具体名称
  • 通用语义 -> 通用名称

约束:

  • 不得约束 context IRI 的 media type
  • 不得约束 target IRI 的 media type
  • CAN 指定 target resource 行为
  • CAN 指定允许的 HTTP method/media type

应用数据:

  • registry 可以包含应用特定数据
  • 示例: browser archiving behavior
  • 通过 Link Relation Application Data registry 注册

4.2. Extension Relation Types

定义:

  • 唯一标识 relation type 的 URI
  • extension relation type 适用于不使用 registered relation type 的应用
  • URI 可以指向语义定义

使用指南:

  • client 不应该自动访问 URI
  • 这样可以避免给服务器带来负担
  • 比较方式: 不区分大小写的字符串匹配
  • 建议使用小写 URI

序列化:

  • 在 Link header 中必须是 absolute URI
  • 如果包含分号 (;) 或逗号 (,), 必须加引号
  • 其他序列化可以使用不同形式 (例如 CURIE)

Registry: IANA Link Relation Types