search

Found

info 概要

HTTP の Link ヘッダ (RFC 8288) を link-value 単位に分解し、URI と rel・title 等のパラメータを抽出。引用符内のカンマも安全に分割

📘 使い方

  1. Link ヘッダの文字列を入力欄に貼り付ける
  2. link-value ごとのカードと集計を画面で確認する
  3. rel チップと title などのパラメータの内訳を読み取る

HTTP Link ヘッダ (RFC 8288) パーサ

RFC 8288 形式。複数の link-value はカンマで区切り、各パラメータはセミコロンで区切る

link-value 数
rel トークン数
0
ユニーク rel
0
パラメータ総数
0
コピーしました

※ link-value = "<" URI ">" *( OWS ";" OWS link-param ) (RFC 8288 セクション 3)

※ Pagination (next/prev/first/last)、preload、preconnect、alternate hreflang などの API レスポンス確認に使用

Article

HTTP Link ヘッダ (RFC 8288) パーサ | link-value を分解して rel とパラメータを一覧化

HTTP レスポンスの Link ヘッダ 1 行を貼り付けると、カンマ区切りの link-value に分け、それぞれを <URI>・rel トークン・title などのパラメータへ分解する。引用符内や <> 内のカンマを誤って区切らない quote-aware なトークナイザを使う。

💡 このツールについて

REST API のページング、preload / preconnect のリソースヒント、alternate の hreflang。Link ヘッダは 1 行に複数の link-value を詰め込むため、目視では rel="next"rel="prev" のどちらがどの URI に紐づくのか追いにくい。とくに URI のクエリ文字列に &, が混ざる、title の引用符の中にカンマが入る、といったケースでは、単純な split(',') では壊れる。

このパーサは RFC 8288 セクション 3 の文法 link-value = "<" URI ">" *( OWS ";" OWS link-param ) に沿って分割する。まず最上位のカンマで link-value に分け、その際 <> の深さと引用符の内外を数えて、URI 内・引用文字列内のカンマは区切り扱いしない。次に各 link-value をセミコロンで link-param に割り、name=value または name="quoted" を取り出す。引用文字列内のバックスラッシュエスケープは剥がして値に格納する。結果は link-value 数・rel トークン総数・ユニーク rel 数・パラメータ総数の 4 集計と、per-link カード(rel をチップ、その他パラメータを key = value 表示)で確認できる。

🧐 よくある質問

Q. rel に複数の値が入っているとどうなりますか。 A. rel="prev next" のように空白区切りで複数トークンを書けます。各トークンを個別のチップに分け、rel トークン総数とユニーク rel 数の両方に反映します。

Q. title の引用符の中にカンマがあっても大丈夫ですか。 A. はい。title="Page 2, draft" のように引用文字列内にカンマがあっても、link-value の区切りとは扱いません。引用符の内外を判定してから分割します。

Q. URI のクエリに ;, が含まれていても壊れませんか。 A. URI は <> で囲まれた範囲をそのまま 1 つの URI として取り出すため、その内側の記号は分割に影響しません。

Q. 複数の link-value で一部だけ書式が崩れている場合は。 A. <URI> の開始 < が見つからない link-value は集計から除外し、残りの正常な link-value の解析を続けます。

Q. 入力に上限はありますか。 A. Link ヘッダは 20000 文字以内です。超過するとエラーを表示します。

📚 豆知識

Link ヘッダは HTML の <link> 要素を HTTP ヘッダ側へ持ち出した仕組みで、RFC 5988 を経て現在は RFC 8288 が標準。ページングの rel="next" / rel="prev" は GitHub API などが採用し、HTTP/2 時代には rel="preload" がブラウザの先読みヒントとして広まった。rel の値は IANA の Link Relation Types レジストリで管理されており、alternatecanonicalstylesheet といった定義済みトークンに加えて、絶対 URI を rel に書く拡張も認められている。