メインコンテンツへ
短.be

コンテンツネゴシエーション

クライアントとサーバーが HTTP ヘッダーを通じて、最適なコンテンツ形式 (言語、フォーマット、エンコーディング) を交渉する仕組み。

2025年12月5日 · 約 1 分で読めます

リダイレクト

コンテンツネゴシエーション (Content Negotiation) とは、HTTP 通信においてクライアント (ブラウザ) とサーバーが、リクエストされたリソースの最適な表現形式を交渉する仕組みです。同じ URL に対して、ユーザーの言語設定、デバイス、対応フォーマットに応じて異なるコンテンツを返すことができます。

コンテンツネゴシエーションは主に HTTP リクエストヘッダーを通じて行われます。Accept ヘッダー (対応するメディアタイプ: text/html、application/json など)、Accept-Language ヘッダー (希望する言語: ja、en-US など)、Accept-Encoding ヘッダー (対応する圧縮方式: gzip、br など) が代表的です。

多言語サイトでのコンテンツネゴシエーションは、短縮 URL と密接に関わります。同じ短縮 URL をクリックしても、ユーザーのブラウザ言語設定に応じて日本語ページや英語ページにリダイレクトする実装が可能です。ただし、SEO の観点では、言語ごとに異なる URL を持ち、hreflang タグで関連付ける方が推奨されます。コンテンツネゴシエーションによる言語切り替えは、検索エンジンが各言語版を正しくインデックスできない場合があるためです。

API の設計でもコンテンツネゴシエーションは重要です。短縮 URL サービスの API が、Accept ヘッダーに応じて JSON または XML でレスポンスを返す実装は一般的です。RESTful API の設計原則では、同じリソースに対して複数の表現形式を提供することが推奨されています。

コンテンツネゴシエーションには、サーバー駆動型 (サーバーがリクエストヘッダーを見て判断) とエージェント駆動型 (サーバーが選択肢を提示し、クライアントが選択) の 2 種類があります。Web では前者が圧倒的に多く使われています。関連書籍は Amazon でも探せます。

X でシェアはてブ

この記事は役に立ちましたか?

関連用語

関連記事

よくある質問

コンテンツネゴシエーションで言語を自動切り替えすべきですか?
ユーザー体験としては便利ですが、SEO の観点では注意が必要です。検索エンジンが各言語版を正しくインデックスできない場合があるため、言語ごとに異なる URL を持ち、hreflang タグで関連付ける方が推奨されます。
API でコンテンツネゴシエーションを実装するには?
リクエストの Accept ヘッダーを解析し、application/json なら JSON、application/xml なら XML でレスポンスを返します。対応していないフォーマットが要求された場合は、HTTP 406 (Not Acceptable) を返します。
Accept-Language ヘッダーはどのように設定されますか?
ブラウザの言語設定に基づいて自動的に送信されます。たとえば日本語環境のブラウザは「Accept-Language: ja,en-US;q=0.9,en;q=0.8」のように、優先度付きで複数の言語を送信します。

短縮 URL を作成してみませんか?

無料で URL を短縮する