1. ホーム
  2. jsp

JSPのフォワードとリダイレクトの違い [重複]について

2023-09-27 07:44:02

質問

との違いを教えてください。 jsp:forwardredirect .

それぞれのケースで何が起こっているのでしょうか?

どのように解決するのですか?

  • リダイレクトはレスポンスステータスを302 [1]に設定し、新しいurlを Location ヘッダを設定し、ブラウザにレスポンスを送ります。その後、ブラウザは http 仕様に従って、新しい url に再度リクエストを行います。

  • の転送は、完全にサーバー上で行われます。サーブレットコンテナは同じリクエストをターゲットの url に転送するだけで、ブラウザはそのことを知りません。したがって、新しい url を処理するときに、同じリクエスト属性と同じリクエストパラメータを使用することができます。そして、ブラウザは url が変更されたことを知りません (なぜなら、それは完全にサーバ上で起こったからです)。


[1]: これは、業界の慣習が標準と矛盾している例です。 HTTP/1.0 仕様 (RFC 1945) では、クライアントが一時的なリダイレクトを実行するよう求めていました。 一時的なリダイレクト(元の記述フレーズは "移動されました")を実行することを要求しています。 Temporarily")が、一般的なブラウザは302を実装し、303 See Otherの機能を備えていました。 303 See Other の機能を実装していました。そこで、HTTP/1.1 では、ステータスコード 303 と 307 を追加しました。 コード 303 と 307 を追加し、この 2 つの動作を区別するようにしました。しかし 一部のWebアプリケーションやフレームワークでは、302のステータスコードをあたかも303のように使っています。 を 303 のように使う Web アプリケーションやフレームワークもあります。 ソース