コンテンツ・タイプの例
以下の例は、HTTP 要求および応答でのコンテンツの処理のまとめです。これらの例は、概念を示すことを目的としており、HTTP プロトコルの正確性は 意図しておりません。
HTTP GET 要求と DELETE 要求では、標準のエンコードを使用して、URI に すべての入力パラメーターが指定されます。そのような要求には本体がありません。これらの要求のコンテンツ・タイプは、常に x-www-form-urlencoded です。 これは、HTTP プロトコルの GET 要求と DELETE 要求で使用できるのは、このコンテンツ・タイプのみであるためです。クライアントでは、Accept ヘッダーを指定することにより、 応答で受け入れることができるコンテンツ・タイプを示します。
次の GET 要求では、パラメーターは URI で照会ストリングとして渡されます。応答で受け入れることができるコンテンツ・タイプは、Accept ヘッダー・フィールド に application/xml と指定されています。
GET http://www.myHost.com:9080/myApp/rest/myCustomer?name=john%20doe
Accept: application/xml
応答を促す要求の種類によらず、すべての HTTP 応答の本体に、応答のデータが 含まれています。応答は、ヘッダー・フィールドから開始されます。応答の Content-Type ヘッダー・フィールドにより、下の本体に含まれている データのタイプがクライアントに通知されます。HTTP では、応答でさまざまなコンテンツ・タイプが許可されていますが、ZIETrans JAX-RS で は application/xml および application/json のみをサポートしています。ヘッダー・フィールド とブランク行 1 行の後で本体が開始されており、指定されているフォーマットのデータが 含まれています。
下の GET 応答の Content-Type ヘッダー・フィールドでは、 応答本体に含まれているデータのタイプを指定しています。
Content-Type: application/xml
<customer>
<firstname>John</firstname>
<lastname>Doe</lastname>
<accountnumber>111111</accountnumber>
</customer>
慣例により、POST 要求では、通常は、何らかのオブジェクトの作成を要求します。要求を実行するために必要なデータは要求本体に含めて送信されます。Content-Type は、要求データのフォーマットをサーバーに示します。Accept ヘッダーは、ここでも、必要な応答フォーマットを指定します。
下の POST 要求では、コンテンツ・タイプは、Content-Type ヘッダー・フィールド に application/xml であると指定されており、コンテンツが要求本体に指定されています。Accept ヘッダー・フィールドでは、応答で受け入れ可能なデータの フォーマットに application/json が指定されています。
POST http://www.myHost.com:9080/myApp/rest/myCustomer
Content-Type: application/xml
Accept: application/json
<customer>
<firstname>Jane</firstname>
<lastname>Doe</lastname>
<accountnumber>222222</accountnumber>
</customer>
下の POST 応答では、応答のフォーマットは、要求で使用されているフォーマットと 一致する必要がないことが分かります。
Content-Type: application/json
{"message":{
"type": "resultCode",
"value": "Jane Doe account created successfully"
}}
POST http://www.myHost.com:9080/myApp/rest/myCustomer?alt=application/xml