3xx Redirection

HTTP 300 Multiple Choices

The request has more than one possible response. The user or agent should choose one.

When is 300 used?

  • Content negotiation returning multiple formats
  • Mirrors or CDN edge selection

How to handle a 300 response

Follow the Location header. Most HTTP clients do this automatically, and curl -L follows redirects on the command line. Update links and sitemaps that point at permanently redirected URLs.

Check the status code a URL returns from the command line:

curl -s -o /dev/null -w "%{http_code}\n" https://example.com

How to return 300 from your server

Node.js (Express)

res.status(300).json({ message: 'Multiple Choices' });

Python (Flask)

return {"message": "Multiple Choices"}, 300

Go (net/http)

w.WriteHeader(300)

Frequently Asked Questions

What does HTTP 300 mean?

300 Multiple Choices: The request has more than one possible response. The user or agent should choose one.

Is 300 an error?

No. 300 is in the 3xx Redirection class. Redirection: the client must take additional action, usually requesting a different URL.