-
Notifications
You must be signed in to change notification settings - Fork 4
/
418.txt
98 lines (74 loc) · 6 KB
/
418.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
[225] [DFN[[CODE(HTTP)[[[202]]]]]] ([DFN[[[Accepted]]]]) は、処理を受け付けたことを示す[[状態符号]]です。
* 仕様書
[REFS[
- [220] '''[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.3>'''
- [215] [CITE@en[RFC 7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content]] ([TIME[2014-06-07 01:55:45 +09:00]] 版) <https://tools.ietf.org/html/rfc7231#section-4.3.5>
- [1] [CITE@en[RFC 7240 - Prefer Header for HTTP]] ([TIME[2014-07-26 04:24:01 +09:00]] 版) <https://tools.ietf.org/html/rfc7240#section-2>
- [3] [CITE[OData Version 4.0 Part 1: Protocol Plus Errata 01]] ([TIME[2014-09-04 16:00:00 +09:00]] 版) <http://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part1-protocol.html#_Toc370374813>
]REFS]
* 意味
[221] [CODE(HTTP)[[[202]]]] は、[[応答]]の処理は受け付けられたものの、
処理はまだ完了していないことを示します。[[要求]]が実際に処理される時にはもう認められなくなっている可能性がありますから、
[[要求]]が実際に処理されるかされないかはわかりません。 [SRC[>>220]]
;; [222] なお [[HTTP]] としては実際の処理が完了した後の結果を送信する方法はありません。 [SRC[>>220]] [CODE(HTTP)[[[1xx]]]] とは違って、 [CODE(HTTP)[[[202]]]]
は[[最後の応答]]で、[[要求]]に対する一連の[[応答]]はここで終わります。
[223] [CODE(HTTP)[[[202]]]] は、1日に1回だけ実行される[[バッチ処理]]のようなもので処理完了まで[[利用者エージェント]]と[[鯖]]とを[[接続]]したままにせずに済ませるためのものです。
[SRC[>>220]]
* 構文
[224] [CODE(HTTP)[[[202]]]] [[応答]]の[[表現]]は、[[要求]]の現在の状態を説明すると共に、
[[利用者]]に[[要求]]が満足される時期の見通しを示す状態監視器を指す (埋め込む)
ものとする[RUBYB[べき]@en[ought to]]です [SRC[>>202]]。
[6] [[OData]] は最新の状態を取得できる [[URL]] の指定に [CODE(HTTP)@en[[[Location:]]]]
[[ヘッダー]]を使っています [SRC[>>3]]。
* 文脈
[218] [[起源鯖]]は、処理が成功した場合には、
処理が成功するであろうものの実施されていない場合には [CODE(HTTP)[[[202]]]] を、
実施され追加情報は特に無い場合には [CODE(HTTP)[[[204]]]] を、
実施され[[応答メッセージ]]に状態を説明する[[表現]]を含める場合には [CODE(HTTP)[[[200]]]]
を返す[['''べきです''']] [SRC[>>215]]。
[4] 利用できる[[要求メソッド]]は特に限定されていません。
[EG[
[5] [[OData]] では、 [CODE(HTTP)@en[[[GET]]]] に対する[[応答]]で
[CODE(HTTP)[[[202]]]] が使われることもあります [SRC[>>3]]。
]EG]
[2] [[串]]は[[要求]]に [CODE(HTTP)@en[[[Prefer:]] [[respond-async]]]]
が指定されていた場合に[[起源鯖]]から[[応答]]が返される前に
[CODE(HTTP)[[[202]]]] を返すことができます [SRC[>>1]]。
[8] [CODE(HTTP)[[[202]]]] が返されたとしても、実際に処理を開始したら失敗する可能性はあります。
[[クライアント]]は [CODE(HTTP)[[[202]]]] [[応答]]のみから処理結果を確実に得ることはできません。
* 歴史
[FIG(quote)[
[FIGCAPTION[
[219] RFC 1945 (HTTP/1.0); RFC 2068・2616 (HTTP/1.1) 10.2.3 202 Accepted
]FIGCAPTION]
>The request has been accepted for processing, but the processing has
not been completed. The request [DEL[[DEL[[INS[{1945}]] may]] [INS[[INS[{2068}]] MAY]]]] [INS[[INS[{2616}]] might]] or [DEL[[DEL[[INS[{1945}]] may not]] [INS[[INS[{2068}]] MAY NOT]]]] [INS[[INS[{2616}]] might not]] eventually be acted
upon, as it [DEL[[DEL[[INS[{1945}]] may]] [INS[[INS[{2068}]] MAY]]]] [INS[[INS[{2616}]] might]] be disallowed when processing actually takes place.
There is no facility for re-sending a status code from an
asynchronous operation such as this.
要求の処理は受け入れられましたが、処理は完了していません。
要求は最終的に動作するかもしれないししないかもしれません。
実際に処理される際に禁止されるかもしれませんのです。
このような非同期処理の状態符号を再送する機能はありません。
>The 202 response is intentionally non-committal. Its purpose is to
allow a server to accept a request for some other process (perhaps a
batch-oriented process that is only run once per day) without
requiring that the user agent's connection to the server persist
until the process is completed. The entity returned with this response [DEL[[INS[{1945}]] should]] [INS[[INS[{2068}]] SHOULD]]
include an indication of the request's current
status and either a pointer to a status monitor or some estimate of
when the user can expect the request to be fulfilled.
[CODE(HTTP)[202]] 応答は、意図的に非引渡し的です。
その狙いは、サーバーに対する利用者エージェント接続を処理完了まで永続的に必要とすることなく、
サーバーが他の何らかの処理 (多分自動処理志向処理で1日に何度かだけ走るとか)
の要求を受け入れることを可能にするところにあります。
この応答で返される実体は要求の現在状態並びに状態観察器又は利用者が要求が満たされると期待できる時間の見積もりの案内を含める'''べきです'''。
]FIG]
[FIG(quote)[
[FIGCAPTION[
[7] [CITE@en[Draft: PubSubHubbub Core 0.4 -- Working Draft]]
([TIME[2015-03-16 20:31:10 +09:00]] 版)
<https://pubsubhubbub.googlecode.com/git/pubsubhubbub-core-0.4.html#anchor6>
]FIGCAPTION]
> The hub MUST respond to a subscription request with an HTTP '''['''RFC2616''']''' 202 "Accepted" response to indicate that the request was received and will now be verified (Section 5.3) and validated (Section 5.2) by the hub.
]FIG]