HTTPQUERY
Deutsch

203 Non-Authoritative Information

Verwendung

Der Statuscode 203 Non-Authoritative Information bestätigt zunächst, dass die Anfrage erfolgreich war. Der ursprüngliche Statuscode bleibt dabei nicht erhalten. Der Client hat keine Möglichkeit festzustellen, ob der Origin-Server 200, 201 oder einen anderen Erfolgscode zurückgegeben hat.

Hinweis

Aus diesem Grund wird vom Statuscode 203 Non-Authoritative Information mitunter abgeraten. Der inzwischen überholte Warning-Header mit dem Code 214 (Transformation Applied) diente einst als Alternative: Er signalisierte eine Transformation und bewahrte zugleich den ursprünglichen Statuscode. Der Warning-Header wurde aus dem HTTP-Standard entfernt.

Beispiel

Der Client fordert eine Ressource über einen zwischengeschalteten Proxy-Server an. Der Origin-Server speichert die Ressource als reinen Text. Der Proxy wandelt die Ressource in das JSON-Format um, bevor er die Antwort an den Client weiterleitet.

Anfrage

GET /instructions HTTP/1.1
Host: example.com

Antwort vom Origin-Server

HTTP/1.1 200 OK
Content-Type: text/plain; charset=UTF-8
Content-Length: 250

<message body in text format>

Antwort des Proxys an den Client

HTTP/1.1 203 Non-Authoritative Information
Content-Type: application/json
Content-Length: 265

{"response":"<message body embedded in JSON>"}

Alternativer Ansatz (veraltet)

Überholt

Der Warning-Header wurde für überholt erklärt und gilt heute als Altlast. Dieser Ansatz wird für neue Implementierungen nicht empfohlen.

Statt den Statuscode 203 Non-Authoritative Information zu verwenden, fügt der Proxy einen Warning-Header mit dem Code 214 (Transformation Applied) hinzu und bewahrt damit den ursprünglichen Statuscode.

Antwort des Proxys unter Verwendung des Warning-Headers

HTTP/1.1 200 OK
Content-Type: application/json
Warning: 214 proxy.example.re "Response converted to JSON format"
Content-Length: 265

{"response":"<message body embedded in JSON>"}

Wird anstelle des Statuscodes 203 Non-Authoritative Information ein Warning-Header verwendet, bleibt der ursprüngliche Statuscode erhalten und der Client verarbeitet die Antwort entsprechend.

Code-Referenzen

.NET

HttpStatusCode.NonAuthoritativeInformation

Rust

http::StatusCode::NON_AUTHORITATIVE_INFORMATION

Rails

:non_authoritative_information

Go

http.StatusNonAuthoritativeInfo

Symfony

Response::HTTP_NON_AUTHORITATIVE_INFORMATION

Python3.5+

http.HTTPStatus.NON_AUTHORITATIVE_INFORMATION

Java

java.net.HttpURLConnection.HTTP_NOT_AUTHORITATIVE

Apache HttpComponents Core

org.apache.hc.core5.http.HttpStatus.SC_NON_AUTHORITATIVE_INFORMATION

Angular

@angular/common/http/HttpStatusCode.NonAuthoritativeInformation