Accept-Language Inspect

入力値の整形・変換・判定をブラウザ内で実行します。入力はサーバーへ送信しません。形式差分の一次切り分けに使えます。

状態

ブラウザ内で処理します。入力はサーバーへ送信しません。まずはここで一次切り分けしてください。

使い方

Accept-Language か Request Headers を貼り付けて「解析」。言語タグと優先度(q)を整理します。

注意(このツール)

  • Accept-Language: のヘッダー行でも解析できます(複数行の貼り付けもOK)。
  • q=0 は「受け付けない」の意味です。

このページについて

何をするツール?

Accept-Language を分解して、言語タグ(ja/en/zh-Hans など)と優先度(q)を一覧化します。

多言語サイトで「どの言語が選ばれたか」を切り分けるのに向きます。

基本(Accept-Language の役割)

  • Accept-Language は「ユーザーが好む言語」の優先順位です。
  • サーバーはこの情報を参考に返す言語を決めます(最終決定はサーバー側)。
  • 言語で内容が変わるなら Vary: Accept-Language が必要です。

q 値(優先度)の読み方

  • q=1.0 が最優先、q が小さいほど優先度が低い。
  • q=0 は「受け付けない」を意味します。
  • 明示されない場合は q=1.0 とみなされることが多い。

言語タグの読み方

  • ja: 日本語
  • en-US: 英語(米国)
  • zh-Hans: 中国語(簡体字)
  • *: その他の言語

入力の例

  • Accept-Language: ja,en-US;q=0.9,en;q=0.8
  • Accept-Language: en, *;q=0.5
  • Request Headers をまるごと貼り付け

キャッシュと Vary: Accept-Language

言語ごとに内容が変わる場合、キャッシュ混在を防ぐため Vary: Accept-Language が重要です。

  • Vary を増やしすぎるとキャッシュが割れやすくなる点に注意
  • 言語はURLで分ける方が安定するケースもある

よくある落とし穴

  • Accept-Language を信じすぎて誤判定(ブラウザ設定と実態が違う)
  • Vary が無く、CDNで別言語が混在
  • 言語判定とURL構成がずれてSEOが弱くなる

切り分け手順(おすすめ)

  • Request Headers Parser で Accept-Language を確認
  • このツールで言語タグと優先度を整理
  • Vary Inspect で Vary: Accept-Language の有無を確認
  • Vary Inspect
  • Request Headers Parser
  • Response Headers Parser
  • Content-Language Inspect(予定)

このツールでできること

  • Accept-Language の分解と優先度(q)の整理
  • 言語タグの一覧化
  • 関連ヘッダー確認ポイントの提示

注意(運用)

  • 同じ文字列でも文脈により解釈規則が異なります。利用先仕様を優先してください。
  • 入力元での自動変換(空白、改行、URLデコード)に注意してください。

参照仕様

  • RFC 9110(HTTP Semantics)
  • RFC 9111(HTTP Caching)
  • RFC 5646(Language Tags)
  • MDN: Accept-Language

FAQ

Accept-Language は必ず送られる?

多くのブラウザは送りますが、プライバシー設定や環境によって省略されることもあります。

Vary: Accept-Language は必須?

同じURLで言語が変わるなら基本的に必要です。URLで分ける設計なら不要な場合もあります。

q 値が無いときは?

通常は q=1.0 とみなされます。

参考リンク

  1. RFC 9110
  2. RFC 9111
  3. RFC 5646
  4. MDN: Accept-Language
  5. MDN: Vary

site_map ルールに基づいて、次に確認すべきページを表示しています。

  1. Content-Language Inspect — Content-Language を解析して配信言語を確認
  2. Accept Header Builder — Accept系ヘッダーを用途別に組み立て
  3. Accept-Charset Inspect — Accept-Charset を解析して文字コード要求を確認

言語/ロケール

Accept系とContent-Languageを照合してネゴシエーション不整合を確認