HTTPQUERY
Bahasa Indonesia

203 Non-Authoritative Information

Penggunaan

Kode status 203 Non-Authoritative Information pertama-tama menegaskan bahwa permintaan berhasil. Kode status aslinya tidak dipertahankan. Klien tidak memiliki cara untuk menentukan apakah origin mengembalikan 200, 201, atau kode keberhasilan lainnya.

Catatan

Karena alasan inilah kode status 203 Non-Authoritative Information terkadang tidak dianjurkan. Header Warning dengan kode 214 (Transformation Applied), yang kini telah usang, dahulu berperan sebagai alternatif: menandakan terjadinya transformasi sekaligus mempertahankan kode status asli. Header Warning telah dihapus dari standar HTTP.

Contoh

Klien meminta sebuah sumber daya melalui server proxy perantara. Server origin menyimpan sumber daya tersebut sebagai teks biasa. Proxy mengubah sumber daya itu ke format JSON sebelum meneruskan responsnya ke klien.

Permintaan

GET /instructions HTTP/1.1
Host: example.com

Respons dari origin

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

<message body in text format>

Respons dari proxy ke klien

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

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

Pendekatan alternatif (lawas)

Telah usang

Header Warning telah diusangkan dan kini menjadi warisan lama. Pendekatan ini tidak direkomendasikan untuk implementasi baru.

Alih-alih menggunakan kode status 203 Non-Authoritative Information, proxy menambahkan header Warning dengan kode 214 (Transformation Applied), sehingga mempertahankan kode status asli.

Respons dari proxy menggunakan header Warning

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>"}

Ketika header Warning dipakai menggantikan kode status 203 Non-Authoritative Information, kode status asli tetap dipertahankan dan klien menangani responsnya sesuai dengan itu.

Referensi kode

.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