HTTPQUERY
日本語

203 Non-Authoritative Information

使い方

203 Non-Authoritative Information ステータスコードは、まずリクエストが成功したことを示します。元のステータスコードは保持されません。クライアントには、オリジンが 200 を返したのか、201 を返したのか、別の成功コードを返したのかを判断する手段がありません。

注意

この理由から、203 Non-Authoritative Information ステータスコードは推奨されない場合があります。現在は廃止された、コード 214(Transformation Applied)を伴う Warning ヘッダーが、かつては元のステータスコードを保持したまま変換が行われたことを示す代替手段として機能していました。Warning ヘッダーは HTTP 標準から削除されました。

例

クライアントが中間のプロキシサーバーを経由してリソースを要求します。オリジンサーバーはそのリソースをプレーンテキストとして保存しています。プロキシはレスポンスをクライアントへ転送する前に、リソースを JSON 形式に変換します。

リクエスト

GET /instructions HTTP/1.1
Host: example.com

オリジンからのレスポンス

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

<message body in text format>

プロキシからクライアントへのレスポンス

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

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

代替アプローチ(レガシー)

廃止済み

Warning ヘッダーは廃止され、現在はレガシーです。このアプローチは新規の実装には推奨されません。

203 Non-Authoritative Information ステータスコードを使う代わりに、プロキシはコード 214(Transformation Applied)を伴う Warning ヘッダーを追加し、元のステータスコードを保持します。

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

203 Non-Authoritative Information ステータスコードの代わりに Warning ヘッダーを使う場合、元のステータスコードが保持され、クライアントはそれに応じてレスポンスを処理します。

コードリファレンス

.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