203 Non-Authoritative Information

203 Non-Authoritative Information is a status-code that might be used by a HTTP proxy.

A HTTP Proxy sits in the middle between a client and a server (origin). In some cases a HTTP Proxy might make changes to the response before it reaches the client.

Perhaps because the Proxy converts the format, or maybe it adds something to the HTML body.

For these situations a proxy can indicate that it changed something by changing the status-code to 203.

However, this status-code has some issues. If a proxy changed the status-code, it’s no longer possible to see what the original status code was. Maybe it was a 200, or 201 or 404 before. That information is now lost.

The RFC actually suggest to use the Warning header for this instead. The warning header can be set to the code 214 Transformation applied. The benefit of a warning code over a status-code is that it can be set without obscuring what the original status code was.

I would not recommend using 203, and I’m not aware of any software that does. A Warning header is better.

Example using 203 Non-Authorititative Information:

HTTP/1.1 203 Non-Authoritative Information
Content-Type: text/plain
Content-Length: 515


Example using Warning header

HTTP/1.1 200 OK
Content-Type: text/plain
Warning: 214 "We censored the response. srry"
Content-Length: 515


Even though the Warning header is actually required when proxies modify the response, most proxies don’t appear to include it.

Random fact: Non-Authoritative Information has 10 syllables. It shares the #1 spot for most syllables with another status code.


HTTP series

This article is part of a series about the HTTP protocol. Read them all here:

Informational 1xx

Successful 2xx

Redirection 3xx

Client Error 4xx

Server Error 5xx

Web mentions