Prefer: wait

好み wait (HTTP)

[2] Prefer: wait は、 クライアントが希望する応答を返すまでの最大待ち時間を指定するものです。

仕様書

意味

[3] wait は、要求が受信してから処理にかかる時間としてクライアントが期待する上界を指定するものです >>1

[10] ただしはそれに従う義務はありません >>1

[9] なお、がこの指定に従った場合でも、更にそれに加えてネットワークの往復や中間器での処理の時間が加わることに注意が必要です >>1

文脈

[18] プッシュメッセージ購読で使えます。

構文

[6] wait にはデルタ秒の値を指定します。引数はありません。 >>1

  1. デルタ秒
[8] Prefer: も参照。

[4] 値は、単位です >>1

処理

[7] Prefer: も参照。

[5] 応答生成に指定された時間より長くかかる場合には、 は、例えば 202 応答を返して非同期的に処理を続けることができます >>1

[11] クライアントPrefer: respond-async, wait=... と指定することで、時間がかかるときに非同期的に結果を返すことを明示的に求めることができます。 しかし respond-async の有無に関わらず、非同期的に処理してもしなくても構いません。また、仕様書に例示されている >>1 ものの、 そのような処理が明確に要求されているわけではありませんから、 wait を無視して直ちに 202 を返す実装もあり得ます。
[12] は指定の時間で処理を終えられず、非同期的に継続することもできない場合、 Prefer: の趣旨に沿うなら無視してそのまま処理を継続してから応答を返すべきと思われます。しかし仕様上は特にそれが要求されているわけではありませんし、 実装方針次第ではエラーを返して処理を中断することもあり得るでしょう。 wait をどう処理するかの事前の知識なく無条件に指定するのは危険かもしれません。

実装

[16] 実装例があるのかどうかは不明です。

歴史

[14] draft-thomson-http-nice-01 - Marking HTTP Requests as Unimportant ( 版) http://tools.ietf.org/html/draft-thomson-http-nice-01#section-2.3

[15] draft-thomson-webpush-http2-01 - Generic Event Delivery Using HTTP Push ( 版) http://tools.ietf.org/html/draft-thomson-webpush-http2-01#section-6

[17] RFC 8030 - Generic Event Delivery Using HTTP Push () https://tools.ietf.org/html/rfc8030#page-16