Back to HTTP Status Codes

306 (Unused) 3xx

Reserved. Previously used in an early HTTP draft, but no longer used and not available for any other purpose.

What does 306 mean?

306 is unique among status codes in this reference: it's officially reserved and explicitly unused. It appeared in an early draft of the HTTP/1.1 specification with a meaning related to proxy redirection (similar in spirit to 305), but was removed before the specification was finalized — and rather than being made available for a new, different meaning, the number 306 was deliberately left reserved and unused going forward.

The current HTTP specification (RFC 9110) explicitly documents 306 specifically to say: this number is reserved, it was previously used in a draft, and it should not be used for any purpose.

Why it stays reserved

Reusing a previously-defined (even if briefly, and even if only in a draft) status code number for an entirely new meaning could create ambiguity — older systems that might have implemented something based on the draft specification could behave unpredictably if 306 were later redefined. By formally reserving and explicitly not reusing 306, the specification avoids any such ambiguity, even though essentially no real-world systems likely ever implemented the original draft behavior.

Common scenarios

If you're building the API or website:

  • 306 should never be used — it's formally reserved as unused, and any system returning 306 would be doing something entirely outside the specification

If you're calling an API:

  • You should never encounter 306 from any specification-compliant system — if you somehow did, it would indicate a non-standard, likely erroneous implementation

If you're a website visitor:

  • Not applicable

SEO implications

None — 306 has no defined meaning or role in web content delivery.

FAQ

What did 306 originally mean?

It appeared in an early HTTP/1.1 draft with a meaning related to proxy switching, conceptually similar to 305 — but was removed before the specification was finalized.

Why wasn't 306 reused for something else?

To avoid any ambiguity with systems that might have implemented behavior based on the early draft, even though such implementations would be extremely rare or nonexistent in practice — formally reserving the number avoids this theoretical conflict entirely.

Will 306 ever be used for something in the future?

Given that it's explicitly documented as reserved and unused in the current specification (RFC 9110), it's not expected to be repurposed — the specification's explicit documentation of this status serves as a clear signal to future specification authors to avoid it.

Is 306 the only "reserved and unused" status code?

It's the most explicitly documented example of this in the current core HTTP specification — a status code number that exists in the registry specifically as a placeholder marking "don't use this," rather than having any active defined meaning (contrast with 402, which is reserved but at least nominally "for future use" with some ambiguous potential).

Should I worry about encountering 306?

No — it would only appear due to a non-standard or erroneous implementation, since no specification-compliant system defines any behavior for it.

Fun fact

306 might be the most "meta" entry in this entire reference — it's a status code whose entire documented purpose, in the current specification, is to explain that it has no purpose, making it less an HTTP status code in active use and more a permanent footnote acknowledging a small piece of the protocol's draft history that didn't make the final cut.

Related Status Codes