300 Multiple Choices betekent dat de doelresource meer dan één representatie heeft, elk met een eigen URL, en dat de server wil dat de gebruiker of user-agent kiest. Typische voorbeelden zijn hetzelfde document in verschillende talen of bestandsformaten. De body hoort de keuzes met links op te sommen.
Heeft de server een voorkeur, dan hoort hij die URL in een Location-header te sturen. RFC 9110 staat user-agents toe die automatisch te volgen, maar browsers doen dat niet: de Fetch-standaard volgt alleen 301, 302, 303, 307 en 308. Gebruikers zien in plaats daarvan de body van de response.
Een 300 is heuristisch cachebaar. Omdat automatische onderhandeling onbetrouwbaar is, kiezen de meeste sites zelf een variant en leveren ze die direct of via een gewone redirect.
Voorbeeldresponse
HTTP/1.1 300 Multiple Choices
Date: Fri, 06 Nov 2026 10:15:32 GMT
Location: https://www.example.com/guide.en.html
Content-Type: text/html; charset=utf-8
Content-Length: 102
<ul>
<li><a href="/guide.en.html">English</a></li>
<li><a href="/guide.de.html">Deutsch</a></li>
</ul> SEO en redirects controleren
300 is zeldzaam en wordt slecht ondersteund door crawlers, dus vertrouw er niet op om bezoekers of bots door te sturen. Wil je verschillende talen aanbieden, gebruik dan aparte URL’s die je met hreflang-annotaties aan elkaar koppelt. Stuur je bezoekers door op basis van taal of apparaat, gebruik dan 302 of 307 en houd een standaardversie aan die crawlers kunnen bereiken. Browsers stoppen bij een 300, dus behandel de code als het einde van de keten wanneer je redirects doorlicht.
Veelvoorkomende oorzaken en toepassingen
mod_spelingvan Apache vindt meerdere bestanden die bij een verkeerd gespelde URL kunnen passen en somt ze op.- Content negotiation somt de beschikbare taal- of formaatvarianten op in plaats van er een te kiezen.
- Een API biedt een document in meerdere formaten aan en laat de client kiezen.