11.5.4 HTTPRedirectHandler オブジェクト

注意: HTTP リダイレクトによっては、このモジュールのクライアントコード 側での処理を必要とします。その場合、 HTTPError が送出されます。 様々なリダイレクトコードの厳密な意味に関する詳細は RFC 2616 を 参照してください。

redirect_request( req, fp, code, msg, hdrs)
リダイレクトの通知に応じて、 Request または None を返します。このメソッドは http_error_30*() メソッドに おいて、リダイレクトの通知をサーバから受信した際に、 デフォルトの実装として呼び出されます。 リダイレクトを起こす場合、新たな Request を生成して、 http_error_30*() がリダイレクトを実行できるようにします。 そうでない場合、他のどのハンドラにもこの URL を 処理させたくなければ HTTPError を送出し、 リダイレクト処理を行うことはできないが他のハンドラ なら可能かもしれない場合には None を返します。

注意: このメソッドのデフォルトの実装は、RFC 2616 に厳密に従ったものでは ありません。 RFC 2616 では、POST リクエストに対する 301 および 302 応答が、 ユーザの承認なく自動的にリダイレクトされてはならないと述べています。 現実には、ブラウザは POST を GET に変更することで、これらの 応答に対して自動的にリダイレクトを行えるようにしています。 デフォルトの実装でも、この挙動を再現しています。

http_error_301( req, fp, code, msg, hdrs)

Location: URL にリダイレクトします。このメソッドは HTTP における `moved permanently' レスポンスを取得した際に 親オブジェクトとなる OpenerDirector によって呼び出されます。

http_error_302( req, fp, code, msg, hdrs)
http_error_301() と同じですが、`found' レスポンスに対して 呼び出されます。

http_error_303( req, fp, code, msg, hdrs)
http_error_301() と同じですが、`see other' レスポンスに対して 呼び出されます。

http_error_307( req, fp, code, msg, hdrs)
http_error_301() と同じですが、`temporary redirect' レスポンスに対して呼び出されます。

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。