406 Not Acceptable

HTTP の 406 Not Acceptableクライアントエラーレスポンスステータスコードで、リクエストの積極的コンテンツネゴシエーションのヘッダーで定義された受付可能な値に一致するレスポンスを、サーバーが生成できず、かつ、サーバーが既定の表現方法で提供することを望まないことを表します。

積極的コンテンツネゴシエーションヘッダーには次のものがあります。

サーバーは、リクエストで受け入れたヘッダーとは異なるレスポンスを返すことがあります。 このような場合、できれば、クライアントのコンテンツネゴシエーションの受け入れ可能な値のリストと一致しない既定のリソースを含む 200 レスポンスを返す方が、 406 レスポンスを返すよりも望ましいでしょう。

サーバーが 406 を返す場合、メッセージ本体には、ユーザーが選べるよう、そのリソースで利用できる表現形式のリストが掲載されているべきですが、これについては標準的な方法は定義されていません。

ステータス

http
406 Not Acceptable

コンテンツ型が利用できない

次のリクエストは、www.example.com/docs/doc1application/rtf として文書内の情報を返信することに対応しているとします。

http
GET /docs/doc1 HTTP/1.1
Host: example.com
Accept: application/rtf;

例えば、サーバーの実装では、既定のコンテンツ型である text/htmlapplication/json に代替されず、代わりに 406 を返します。

http
HTTP/1.1 406 Not Acceptable
Date: Wed, 26 Jun 2024 12:00:00 GMT
Server: Apache/2.4.1 (Unix)
Content-Type: application/json

{
  "code": "UnsupportedType",
  "message": "Only 'text/html' or 'application/json' content types supported.",
}

仕様書

Specification
HTTP Semantics
# status.406

関連情報