Web Development
Intermediate
What is Content Negotiation?
An HTTP mechanism where client and server agree on the best representation of a resource based on format, language, or encoding preferences.
Content negotiation allows serving different representations of the same resource based on client capabilities and preferences. The Accept header specifies preferred media types (application/json, text/html). Accept-Language indicates language preference (en, de, fr). Accept-Encoding specifies compression support (gzip, br). The server examines these headers and responds with the best match, indicating the choice via Content-Type, Content-Language, and Content-Encoding response headers. This enables APIs to return JSON or XML from the same endpoint, serve WebP images to supporting browsers with JPEG fallback, and deliver localized content — all at the same URL.