回答:
正しく注意するように、AcceptヘッダーはHTTPクライアントによって使用され、受け入れるコンテンツタイプをサーバーに通知します。その後、サーバーは応答を送り返します。応答には、返されるコンテンツのコンテンツタイプが実際に何であるかをクライアントに伝えるContent-Typeヘッダーが含まれます。
ただし、お気づきかもしれませんが、HTTP要求には Content-Typeヘッダーを含めることもできます。どうして?さて、POSTまたはPUTリクエストについて考えてください。これらの要求タイプでは、クライアントは要求の一部として実際に大量のデータをサーバーに送信し、Content-Typeヘッダーはサーバーにデータが実際に何であるかを伝えます(したがって、サーバーがどのように解析するかを決定します)。
特に、HTMLフォームの送信から生じるPOSTリクエストの場合、リクエストのContent-Typeは(通常)タグの属性で指定される以下の標準フォームコンテンツタイプのいずれかです。enctype
<form>
application/x-www-form-urlencoded
(デフォルト、古い、シンプル、少量のシンプルなASCIIテキストのオーバーヘッドがわずかに少ない、ファイルアップロードサポートなし)multipart/form-data
(新しい、ファイルのアップロードのサポートを追加し、大量のバイナリデータまたは非ASCIIテキストにより効率的)受け入れるのは
ここに私のリクエストがあり、この応答形式を(受け入れたい)
コンテンツタイプは
これが私の要求(または応答)であり、これ(Content-Type)は私の要求(または応答)で送信するコンテンツの形式です
Accept request HTTPヘッダーは、MIMEタイプとして表現される、クライアントが理解できるコンテンツタイプをアドバタイズします。コンテンツネゴシエーションを使用して、サーバーは提案の1つを選択し、それを使用して、Content-Type応答ヘッダーを使用してクライアントに選択を通知します。ブラウザーは、要求が行われるコンテキストに応じてこのヘッダーに適切な値を設定します。CSSスタイルシートを取得する場合、画像、ビデオ、またはスクリプトを取得する場合とは異なる値が要求に設定されます。
Content-Typeエンティティヘッダーは、リソースのメディアタイプを示すために使用されます。
応答では、Content-Typeヘッダーは、返されたコンテンツのコンテンツタイプが実際に何であるかをクライアントに伝えます。ブラウザは、場合によってはMIMEスニッフィングを行い、必ずしもこのヘッダーの値に従うとは限りません。この動作を防ぐために、ヘッダーX-Content-Type-Optionsをnosniffに設定できます。
リクエスト(POSTやPUTなど)で、クライアントは実際に送信されるデータのタイプをサーバーに伝えます。