Acceptヘッダ【Accept:】
概要

書式は「Accept: メディアタイプ, メディアタイプ, …」で、受け入れ可能なメディアタイプをカンマ区切りで列挙する。例えば、「Accept: text/html, text/plain」はHTMLとプレーンテキストの両方を受け入れることを示す。
メディアタイプはMIME標準に従って「タイプ名/サブタイプ名」という形式で記述する。サブタイプを問わない場合は「text/*」のようにアスタリスク(*)で代替できる。「*/*」はあらゆる形式を受け入れることを意味し、Webブラウザが形式を限定せずにリクエストを送る際に用いられる。
複数の形式を列挙する場合は、各タイプに「q=値」という書式で優先度を付与できる。値は0から1.0の範囲の小数で、省略した場合は1.0とみなされる。例えば「Accept: text/html, text/plain;q=0.9」と指定すると、text/htmlを優先して返してほしいという意向をサーバに伝えることができる。q値に0を指定した場合は、そのメディアタイプを受け入れないことを示す。
WebサーバはAcceptヘッダの内容を参考にHTTPレスポンスのメディアタイプを選択し、「Content-Type」ヘッダに記載する。サーバは独自にメディアタイプを決定することができ、必ずしも要求通りの形式を返す義務はない。要求されたどのメディアタイプにも対応できない場合、仕様上はHTTPステータスコード「406 Not Acceptable」を返すことが定められているが、実際には対応可能な形式でそのまま返すサーバも少なくない。
Acceptヘッダと同様にクライアントが受け入れるコンテンツの形式を知らせる仕組みとして、文字コードを指定する「Accept-Charset」や、コンテンツの圧縮形式を指定する「Accept-Encoding」、日本語や英語といった言語を指定する「Accept-Language」といったフィールドも定義されている。