含义
服务器无法生成客户端 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 日志。