300 Multiple Choices
The request has more than one possible response, and the user agent should select one.
Usually happens because:
- ☑ Requesting a resource that has
- ☑ Content negotiation workflows returning optional
🔍 Quick Checklist:
Meaning
The HTTP 300 Multiple Choices redirection status code indicates that the request has more than one possible response. The user agent or user should choose one of them. Since there is no standardized way of choosing one of the responses, this status code is very rarely used.
Root Causes
- Requesting a resource that has multiple format variations (e.g. video files in different formats/resolutions).
- Content negotiation workflows returning optional links lists.
| Cause | Frequency |
|---|---|
| Requesting a resource that has | ⭐⭐⭐⭐⭐ |
| Content negotiation workflows returning optional | ⭐⭐⭐⭐ |
Common Mistakes
- Returning HTTP 300 without providing choice URLs in the body, leaving the client stuck.
- Using 300 instead of standard 302/307 redirects when a default choice exists.
How to Fix
Framework-Specific Examples
Returning 300 status code with choice payload links in Express.
app.get('/video', (req, res) => {
res.status(300).json({
choices: ['/video.mp4', '/video.webm']
});
});Server Configuration Examples
Nginx custom maps returning status 300.
# Nginx returns 300 for non-negotiated pathsPrevention
- Prefer content negotiation headers (e.g. Accept, Accept-Language) over 300 redirection loops.
- Format choice bodies clearly in JSON or XML for automated parser processing.
Frequently Asked Questions (FAQ)
Q: Why is 300 Multiple Choices rarely used?
Because there is no standard format for the response body, browsers cannot pick a choice automatically, forcing users to click link options manually.
Q: Can 300 responses be cached?
Yes. 300 Multiple Choices responses are cacheable by default unless specified by cache-control headers.
Q: What is the correct fallback if a browser cannot choose?
The server should designate a default resource choice in the 'Location' header of the 300 response.
Q: Does 300 affect SEO?
Yes. Search engine bots cannot choose between choices, which splits link ranking equity. Use 301 Moved Permanently instead.