[312] [DFN[[CODE(HTTP)[[[203]]]]]] は、[[payload]] が変更されていることを表す[[状態符号]]です。

* 仕様書

[REFS[
- [308] '''[CITE@en[RFC 7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content]] ([TIME[2014-08-07 05:54:02 +09:00]] 版) <https://tools.ietf.org/html/rfc7231#section-6.3.4>'''
- [305] [CITE@en[RFC 7230 - Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing]] ([TIME[2014-06-07 01:59:35 +09:00]] 版) <https://tools.ietf.org/html/rfc7230#page-50>
]REFS]

* 意味

[309] [CODE(HTTP)[[[203]]]] は、[[要求]]は成功したものの、
含まれている [[payload]] は[[起源鯖]]の [CODE(HTTP)[[[200]]]]
[[応答]]を[[変形串]]が修正したものであることを表します [SRC[>>308]]。

;; [310] [CODE(HTTP)[[[214]]]] [[警告符号]]と似ていますが、
[CODE(HTTP)[[[214]]]] [[警告符号]]は [CODE(HTTP)[[[200]]]]
以外の[[状態符号]]にも適用できます [SRC[>>308]]。

* 文脈

[306] [[串]]は、[CODE(HTTP)[[[200]]]] [[応答]]の [[payload]] を[[変形]]した場合、
[[状態符号]]を [CODE(HTTP)[[[203]]]] に変更できます [SRC[>>305]]。

* 処理モデル

[311] [CODE(HTTP)[[[203]]]] [[応答]]は、[[キャッシュ可能]]です [SRC[>>308]]。

* 歴史

[FIG(quote)[
[FIGCAPTION[
[307] RFC 2068・2616 (HTTP/1.1) +10.2.4 203 Non-Authoritative Information
]FIGCAPTION]

> The returned metainformation in the entity-header is not the
definitive set as available from the origin server, but is gathered
from a local or a third-party copy. The set presented MAY be a subset
or superset of the original version. For example, including local
annotation information about the resource [DEL[MAY]] [INS[might]] result in a superset of
the metainformation known by the origin server. Use of this response
code is not required and is only appropriate when the response would
otherwise be 200 (OK).

実体頭欄で返されるメタ情報は起源サーバーから利用可能な最も信頼できるものではなく、
局所複製又は第3者複製から集めたものです。
示される集合は起源版の部分集合でも超集合でも'''構いません'''。
例えば、資源についての局所注釈情報を含むことで起源サーバーの知るメタ情報の超集合になるかもしれません。
この応答符号の使用は必須ではなく、また本来なら応答は [CODE(HTTP)[[[200]]]] (OK)
になるときのみ適切です。
]FIG]

* メモ

[1] 例えば、[[鏡サーバー]]だから元ファイルの構成は一緒だけど、
サーバーの設定まで一緒じゃないから実際に応答するときに違った実体頭欄が送られてしまい得る場合なんかに使うのでしょうね。
例えば、あるサーバーではファイル名が [CODE(file)[.rdf]]
で終わる時に [SAMP(HTTP)[[[Content-Type]]: [[application/xml]]; [[charset]]=[[ISO-2022-JP]]]]
を送るけど、その鏡であるけど設定までは一緒でないサーバーは対応する資源を要求された時に
[SAMP(HTTP)[Content-Type: [[application/rdf+xml]]; charset=iso-2022-jp]]
を送ってしまうとか。 [WEAK[でも超集合や部分集合でもいいとは書いてあるけど、違う情報でもいいとは一言も書いてないな。。。その辺微妙だ。。。]]

[2]
[[翻訳]]機能付きの[[串]]なんかで勝手に翻訳した結果の[[実体]]を送る時にこの[[状態符号]]を使っちゃっていいもんですかね?

[3]
[CODE(HTTP)@en[[[206]]]] とか [CODE(HTTP)@en[[[304]]]]
と[Q[併用]]するわけにもいかないので、本当は[[応答頭欄]]で記述できた方が良かったのでしょうね。