# Content Negotiation

> An HTTP mechanism where the same URL returns different representations based on request headers such as Accept.

_The Agentic Web Lexicon · /glossary/content-negotiation · [JSON](/api/glossary/content-negotiation) · [all The Agentic Web Lexicon](/glossary)_

- **term:** Content Negotiation
- **category:** protocols
- **short_def:** An HTTP mechanism where the same URL returns different representations based on request headers such as Accept.
- **long_def:** Standardized in HTTP/1.1 (RFC 9110, HTTP Semantics), it is the clean way to serve HTML to browsers and markdown to agents from one URL, advertised with a Vary: Accept response header so caches behave.
- **see_also:** markdown-twin
- **etymology_origin:** Specified by the IETF as part of HTTP semantics; current normative reference is RFC 9110 'HTTP Semantics' (June 2022), which obsoletes the earlier RFC 7231 / RFC 2616 definitions.
- **related_to:** markdown-twin, robots-txt
- **contrast_with:** Unlike URL-based routing, which serves different content from different paths, content negotiation serves different representations from ONE URL based on request headers (Accept, Accept-Language).
- **example:** A server sets Vary: Accept and returns text/markdown to an agent and text/html to a browser from the same URL, as defined in RFC 9110 (June 2022).
- **source:** https://www.rfc-editor.org/rfc/rfc9110.html#name-content-negotiation
- **status:** active
- **why_it_matters:** Content negotiation is the standards-compliant mechanism that makes markdown twins possible without breaking caches, SEO or canonical URLs.
- **sameAs:** https://en.wikipedia.org/wiki/Content_negotiation
- **bridge_entity:** agent-readiness
- **last_verified:** 2026-06-15
- **md_twin:** /glossary/content-negotiation.md
