HTTP ヘッダーに基づくコンテンツ・ネゴシエーションの実装
REST (Representational State Transfer) アプリケーションは、リソースの異なる表示を戻すことができます。 HTTP Accept ヘッダー に基づくコンテンツ・ネゴシエーションを使用して、サーバーとクライアントの間の データ交換に使用されるコンテンツ形式を決定することができます。
このタスクについて
リソースはさまざまな形式でデータを表示できます。 URL、要求パラメーター、または HTTP ヘッダーに基づいたコンテンツ・ネゴシエーションを実装できます。 このタスクでは、さまざまなデータ形式を送信および受信するための、HTTP Accept ヘッダーに基づいた コンテンツ・ネゴシエーションについて説明します。
Web ブラウザーは、要求を行う際に、何を求めているのかについての情報をヘッダーに入れてサーバーに送信します。 それらのヘッダーの 1 つが Accept ヘッダー です。 Accept ヘッダーは、クライアントがどのような形式 または MIME タイプを予期しているのかをサーバーに知らせます。 HTTP Accept ヘッダー を使用して、データ交換に使用されるコンテンツ形式を判定できます。
Accept ヘッダー は URL やパラメーターのように可視ではありませんが、このヘッダー を使用する方式は、コンテンツ・ネゴシエーションをより柔軟に扱うことができます。 また、HTTP Accept 、Accept-Charset 、Accept-Language 、 そしてAccept-Encodingヘッダーによって、サーバーから返されるコンテンツの種類が決まります。
HTTP Accept ヘッダーを使用して、受け入れ可能な応答について、 それがどの程度の質で受け入れ可能なのかを割り当てることができます。 例えば、あるクライアント は、優先されるコンテンツ・タイプとして XML を指示できます。 ただし、XML が 使用可能でない場合、そのクライアントが JSON またはプレーン・テキスト形式を受け入れるようにできます。
例えば、
Accept ヘッダーに application/json;
q=1.0, text/xml;q=0.5, application/xml;q=0.5
のような値が入っている場合、
この値は、優先されるのは JSON だが、XML も受け入れ可能であることを示しています。
他のコンテンツ・ネゴシエーション方式 では、優先応答タイプは 1 つしかないのが 普通です。 しかし、HTTP Accept ヘッダーを 使用すると、クライアントが受け入れ可能なタイプを 1 つの要求内にすべて網羅して、 サービスに通知することができます。 さらに、HTTP Accept ヘッダーおよびその関連ヘッダー は、HTTP 標準の一部です。
HTTP ヘッダーを使用するコンテンツ・ネゴシエーションを 実装するときには、以下の観点から検討をすることが 重要です。 正しくない値を送信するクライアントや、 Accept HTTP ヘッダーに注意を払わないサービスがある場合もあります。 また、 すべての HTTP ヘッダーを処理し、最適な応答を計算することは、 URL または要求パラメーターに基づくコンテンツ要求ほど単純では ありません。
手順
結果
データを表示するリソース形式を Accept ヘッダーを使用して決定する、 コンテンツ・ネゴシエーションの実装が完了しました。