← Back to Chapters

HTTP 203 — Non-Authoritative Information

? HTTP 203 — Non-Authoritative Information

? Quick Overview

The 203 Non-Authoritative Information status code indicates that the request was successful, but the returned response body has been modified by a transforming proxy or intermediary. The information is valid, but it did not come directly from the origin server.

? Key Concepts

  • Belongs to the 2xx (Successful) HTTP status code family
  • Response data may be altered by a proxy, cache, or gateway
  • Client receives usable content, but not authoritative
  • Rarely used in modern APIs

? Syntax / Theory

When a client makes a request, the origin server may not respond directly. Instead, an intermediary (like a caching proxy) might modify headers or body content. In such cases, the proxy can return a 203 status code to signal that the response is not exactly what the origin server would have returned.

? Code Example

? View Code Example
// Express.js example sending a 203 response
res.status(203).json({
  message: "Response modified by proxy",
  source: "cache"
});

? Live Output / Explanation

Response

The client receives JSON data successfully, but the status code signals that the data may have been transformed by an intermediary service.

? Interactive Example

Click the button below to simulate a request passing through a transforming proxy server.

STATUS: 203 Non-Authoritative

 
? View Logic Code
// Fetch API example checking for 203 status
fetch("/api/data")
.then(res => {
  if (res.status === 203) {
    console.log("Non-authoritative information received");
  }
  return res.json();
})
.then(data => console.log(data));

? Use Cases

  • Responses served from modified caches
  • Corporate proxies altering headers or content
  • Legacy HTTP systems
  • Educational or diagnostic scenarios

✅ Tips & Best Practices

  • Prefer 200 OK for most API responses
  • Use 203 only when content is truly non-authoritative
  • Document intermediary behavior clearly
  • Clients should usually treat 203 like 200

? Try It Yourself

  • Create a proxy server that modifies API responses
  • Return status 203 and inspect client behavior
  • Compare results with status 200