{
  "dataset": "glossary",
  "record": {
    "id": "content-negotiation",
    "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"
  }
}