[504] [[HTTP]] の [DFN[[CODE(HTTP)@en[[[Retry-After:]]]]]] [[応答ヘッダー]]は、その [[HTTP要求]]を再試行するべき時に、 その再試行までに待つべき時間を指定するものです。 * 構文 [506] [CODE(HTTP)@en[[[Retry-After:]]]] [[応答ヘッダー]]の[[欄値]]としては、 その時刻以降に再試行を開始するべき[[絶対時刻]]を[[HTTPの日付形式]]として指定するか、 または待つべき相対的な[[時間]]を[[デルタ秒]]として[[整数]]で指定するかのいずれかを使えます。 * 503 での用法 [5] [[HTTP]] [CODE(HTTP)[[[503]]]] (サービス利用不能) は、過負荷などで一時的にサービスが利用できなくなっているときに鯖が返してもよいことになっている状態符号です。 そして、復旧する (までの) 時間が予測できるのであれば、 [CODE(HTTP)[Retry-After]] 欄を使ってよいことになっています。 ([[名無しさん]]) [[#comment]] * 3xx での用法 [1] 実際 redirect で2分とか待たされたら嫌かも。 その間 [[UA]] は、利用者は、何をしてればいいんやねん? みたいな。 応答で送られてきた[[実体]]を利用者に見せつつ、 何秒後に移動します。。。というメッセージを出すといいのかな。 非対話 UA だったら・・・どうするのだろう? [2] よく、移転しますた。っていうメッセージを [CODE(HTTP)[[[200]]]] で出して、 [CODE(HTTP)[[[Refresh]]]] で数秒後に飛ばすというのをやってますけど、 それの標準化された代替として使えるかな?? [[#comment]] * 仕様書から [FIG[ [FIGCAPTION[ [505] RFC 1945 (HTTP/1.0) D.2.8; RFC 2068 (HTTP/1.1) 14.38; RFC 2616 (HTTP/1.1) 14.37 Retry-After ]FIGCAPTION] > The Retry-After response-header field can be used with a 503 ([DEL[[INS[{1945}]] service unavailable]] [INS[Service Unavailable]]) response to indicate how long the service is expected to be unavailable to the requesting client. [INS[[INS[{2616}]] This field MAY also be used with any 3xx (Redirection) response to indicate the minimum time the user-agent is asked wait before issuing the redirected request.]] The value of this field can be either an HTTP-date or an integer number of seconds (in decimal) after the time of the response. [CODE(HTTP)[Retry-After]] [[応答頭欄]]は、 どれだけの間サービスが利用不能と思われるかを要求してきたクライアントに示すために [CODE(HTTP)[[[503]]]] (サービス利用不能) 応答と共に使うことができます。 [INS[この欄は、[[再指向]]要求を発行する前に利用者エージェントに待機して欲しい最低時間を示すために [CODE(HTTP)[[[3xx]]]] (再指向) 応答でも使って'''構いません'''。]] この欄の値は、 [CODE(HTTP)[[[HTTP-date]]]] か、応答の時刻の後の秒数 (十進整数) のいずれかです。 [INS[ > [INS[{2968,2616}]] - Retry-After = "Retry-After" ":" ( HTTP-date | delta-seconds ) > Two examples of its use are - Retry-After: Fri, 31 Dec 1999 23:59:59 GMT - Retry-After: 120 > In the latter example, the delay is 2 minutes. 後者の例では、間隔は2分です。 ]INS] * RFC の部分の License [[RFCのライセンス]] ]FIG] * メモ - [3] [CODE(HTTP)[[[423]]]] (固定済) あたりにも [CODE(HTTP)[Retry-After]] が使えてもいい気がするのだけどどうよ? [4] >>3 Lock は他の処理との相互作用だから、予測がつかない、ってことかもしれませんけど、経験的に予想できることもありますから、使ってもいいかもしれませんね。