5. The Link Header Field (Linkヘッダーフィールド)
Linkヘッダーフィールドは、HTTPヘッダーでリンクをシリアライズする手段を提供します。
概要
セマンティクスの等価性:
- HTMLの
<LINK>要素と等価 - Atomの
atom:linkフィードレベル要素と等価
ABNF構文
Link = "Link" ":" #link-value
link-value = "<" URI-Reference ">" *( ";" link-param )
link-param = ( ( "rel" "=" relation-types )
| ( "anchor" "=" <"> URI-Reference <"> )
| ( "hreflang" "=" Language-Tag )
| ( "media" "=" ( MediaDesc | ( <"> MediaDesc <"> ) ) )
| ( "title" "=" quoted-string )
| ( "title*" "=" ext-value )
| ( "type" "=" ( media-type | quoted-mt ) )
| ( link-extension ) )
構成要素
5.1. ターゲットIRI (Target IRI)
- 山括弧
<>内のURI-Referenceとして伝達 - 相対URIはRFC 3986のセクション5に従って解決
- メッセージコンテンツからのベースIRIは適用されません
5.2. コンテキストIRI (Context IRI)
- デフォルト: リクエストされたリソースのIRI
- オーバーライド:
anchorパラメータを使用 - フラグメントまたは第三のリソースを指定可能
- 相対URIはRFC 3986に従って解決
- 実装はアンカー付きリンクを無視してもよい (MAY)
5.3. 関係タイプ (Relation Type)
relパラメータで指定- link-valueごとに1回以上出現してはなりません (MUST NOT)
revパラメータ: 非推奨 (DEPRECATED)(逆方向)- 拡張タイプ:絶対URIでなければならず、; または , を含む場合は引用符で囲む必要があります
5.4. ターゲット属性 (Target Attributes)
標準パラメータ:
| パラメータ | 説明 |
|---|---|
hreflang | ターゲットリソースの言語ヒント |
media | スタイル情報の対象メディア/媒体 |
title | 人間が読めるラベル |
title* | エンコードされたラベル (RFC 5987) |
type | メディアタイプのヒント |
使用規則:
hreflang: 複数回出現可能media: ; または , を含む場合は引用符で囲む必要がありますtitle: 1回以上出現してはなりません (MUST NOT)title*: 両方存在する場合はtitleよりも優先type: メディアタイプのヒント、Content-Typeをオーバーライドしません
5.5. 例
シンプルなナビゲーション:
Link: `http://example.com/TheBook/chapter2`; rel="previous";
title="previous chapter"
拡張関係:
Link: </>; rel="http://example.net/foo"
エンコーディングを使用した複数のリンク:
Link: </TheBook/chapter2>;
rel="previous"; title*=UTF-8'de'letztes%20Kapitel,
</TheBook/chapter4>;
rel="next"; title*=UTF-8'de'n%c3%a4chstes%20Kapitel
関連: