意味
クライアントの Accept ヘッダーが許すどの形式でも、サーバーはレスポンスを生成できません。
よくある原因
- Accept が API の対応しない型(application/xml など)を求めている
- 厳しすぎる Accept-Language や Accept-Encoding
- セキュリティモジュールが珍しい Accept ヘッダーを拒否した
対処法
クライアント・閲覧者の場合
Accept: application/json か */* を送るか、厳しすぎる Accept-* ヘッダーを外します。
サイトや API の運営者の場合
可能なら 406 ではなくデフォルトの表現にフォールバックし、利用可能な型をボディに列挙します。
レスポンス例
HTTP/1.1
HTTP/1.1 406 Not Acceptable
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx
Content-Type: application/problem+json
{
"type": "about:blank",
"title": "Not Acceptable",
"status": 406,
"detail": "Available representations: application/json."
} 仕様
よくある質問
› 406 と 415 の違いは?
406 はクライアントが受け取りたいもの(Accept)、415 はクライアントが送ったもの(Content-Type)に関するものです。
› mod_security が 406 を返すのはなぜ?
一部のルールセットは 406 を汎用のブロックステータスとして使います。WAF のログを確認してください。