2011-02-11 17 views
1

自分のWebサーバー(www.myserver.com)にリダイレクトされたページにありましたが、要求はGETではなくPOSTでした。ブラウザがPOSTでURLにリダイレクトされる可能性がありますか?

「GET /」を処理するためのルートハンドラがあったため、最初はwww.myserver.comがリクエストを処理できませんでした。私はそれがPOSTリダイレクション(自分のガイドでそれについて読んで)かもしれないことに気づいたとき、私は "POST /"のためのルートハンドラを作成し、ページが提供されました。

私が間違っていると私を訂正します。そのため、ブラウザはPOSTでURLにリダイレクトできますか?

答えて

2

答えはYESですが、ブラウザはユーザにプロンプ​​トを表示します。 302はGETとHEADには許可されていませんが、POSTには307が許可されています。 HTTPのRFCから:

307一時的なリダイレクト

要求されたリソースが一時的に別のURIの下 を常駐します。 リダイレクトは時々 に変更される可能性があるため、クライアントは 今後のリクエストに対してRequest-URIを引き続き使用する必要があります。SHOULD この応答は、 Cache-ControlまたはExpiresヘッダーフィールドで指定されている場合にのみ、キャッシュ可能です( )。

一時的なURIは、応答のロケーションフィールド で指定する必要があります(SHOULD)。 リクエストメソッドは 多くの事前HTTP/1.1ユーザエージェントが が307個の状態を理解していないので、HEAD、 レスポンスのエンティティは、新しいURI(複数可)に ハイパーリンクで短いハイパーテキストのメモを 含むべきでない限り。したがって、 ノートには、 のユーザに必要な情報が含まれている必要があります。 は、新しい URIで元のリクエストを繰り返します。

307のステータスコードがGET やHEAD以外の要求に 応答して受信された場合、これは変更される場合がありますので、それは、 ユーザに確認することができない限り、ユーザーエージェントが自動的に要求 をリダイレクトしない MUSTは、 要求が であった条件。

どのブラウザをお使いですか?

+0

私はChromeを使用していました – ajsie

0

あなたのページを指し示す<form>タグを持つページを作成し、ページが読み込まれたときにJavascriptを使用してフォームを送信できます。

+0

しかし、私はフォームについては言及していませんでしたが、POSTのリダイレクトはありません。 – ajsie