The 406 (Not Acceptable) status code indicates that the target resource does not have a current representation that would be acceptable to the user agent, according to the proactive negotiation header fields received in the request, and the server is unwilling to supply a default representation.
The server SHOULD generate a payload containing a list of available representation characteristics and corresponding resource identifiers from which the user or user agent can choose the one most appropriate.
There’s a set of headers that a client can send to define how it wants the resource it’s requesting:
Accept: What kind of media does the client accept?
Accept-Charset: In what character set?
Accept-Encoding: With what encoding?
Accept-Language: In what language?
In a scenario where the client sends those headers but the server can’t serve up a thing that matches,
406 Not Acceptable is an acceptable response…