error code 300

HTTP Status Code 300 = “Multiple Choices”

The requested resource has multiple possible responses, and the client/browser should choose one.

Purpose

300 Multiple Choices is used when:

  • multiple file formats are available,
  • multiple languages exist,
  • several redirect targets are possible,
  • content negotiation is needed. Example

http id=”g7v2mx”
HTTP/1.1 300 Multiple Choices

Server may return options like:

json id=”t3n8qe”
{
“versions”: [
“/page-en”,
“/page-fr”,
“/page-es”
]
}

Real-world scenarios

  • Language selection pages
  • Different media formats
  • API version choices
  • Mirror download links

Example:

  • /manual.pdf
  • /manual.docx
  • /manual.html Is 300 commonly used?

No.
Most modern applications use:

  • 301 → permanent redirect
  • 302 → temporary redirect
  • 303 → see other

instead of 300.

Developer example

Node.js Express

js id=”a8m3pd”
res.status(300).json({
choices: [
“/en/home”,
“/fr/home”
]
});

PHP

php id=”x9q1wc”
http_response_code(300);
echo “Multiple Choices Available”;

Difference from other redirects

| Code | Meaning |
| — | |
| 300 | Multiple Choices |
| 301 | Permanent Redirect |
| 302 | Temporary Redirect |
| 303 | See Other |
| 307 | Temporary Redirect |
| 308 | Permanent Redirect |

Browser behavior

Browsers rarely show a special UI for 300.
Usually applications handle the selection logic themselves.