RFCによると、
GET または HEAD 以外のリクエストに応答して 302 ステータス コードを受信した場合、ユーザーが確認できない限り、ユーザー エージェントはリクエストを自動的にリダイレクトしてはなりません。これにより、リクエストが発行された条件が変更される可能性があるためです。
( http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.3 )
したがって、この動作は少なくとも準拠していません-ただし、RFC には次のようにも記載されています。
注: RFC 1945 および RFC 2068 では、リダイレクトされた要求でクライアントがメソッドを変更することは許可されていないと規定されています。ただし、ほとんどの既存のユーザー エージェント実装は、302 を 303 応答であるかのように扱い、元の要求メソッドに関係なく、Location フィールド値に対して GET を実行します。ステータス コード 303 および 307 は、クライアントに期待される反応の種類を明確に明らかにしたいサーバー用に追加されました。
IOW: RFC に準拠していませんが、これはほとんどのユーザー エージェントのデフォルトの動作であり、ほとんどの Web アプリは実際に 303 ではなく 302 を使用して post-redirect-get を実装しています。
したがってrequests
、ここでの動作は明らかにバグではなく、実用的な設計上の決定です。そして、Foo Bar User がすでに言及しているように、allow_redirects
引数を使用してこれを変更できます。