HTTP 300 Multiple Choices indicates the request has more than one possible response. The server provides a list of alternatives and the user or client agent should choose one. This is rarely used in practice.
300 Multiple ChoicesGET /about HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0
Accept: text/htmlHTTP/1.1 300 Multiple Choices
Content-Type: text/html; charset=utf-8
Content-Length: 218
<!doctype html>
<html>
<body>
<h1>Multiple Choices</h1>
<ul>
<li><a href="/about/en">English</a></li>
<li><a href="/about/fr">French</a></li>
<li><a href="/about/de">German</a></li>
</ul>
</body>
</html>Specify the desired content type in the Accept header so the server can select the right representation.
curl -H 'Accept: application/json' https://example.com/resource
The 300 response body typically lists the available alternatives with their URIs.
Choose the most appropriate alternative from the list and request it directly.
The server offers the same resource in multiple formats (HTML, JSON, XML) and cannot determine which one the client prefers.
| Specification | Section |
|---|---|
| HTTP Semantics | RFC 9110 §15.4.1 |
This reference was compiled from official RFCs, protocol specifications, and hands-on troubleshooting experience. AI tools were used primarily for formatting and organizing the content on the page.