1. ホーム
  2. jsp

[解決済み] 302リダイレクトはrefererの文字列を維持しますか?

2023-02-10 01:26:14

質問

ユーザーをあるページから別のページにリダイレクトする必要があるのですが、元のReferer文字列を維持する必要があります。したがって、例えば、彼らが最初に http://www.othersite.com/pageA.jsp にいて、リンクをクリックすると http://www.example.com/pageB.jsp への 302 リダイレクトを実行します。 http://www.example.com/pageC.jsp への 302 リダイレクトが実行されます。このとき、referer の文字列に http://www.othersite.com/pageA.jsp

これは302リダイレクトの通常の動作なのでしょうか?それとも私のオリジナルのリファラは削除され、代わりに http://www.example.com/pageB.jsp ? それは望ましいことではありません。

違いがあるかどうか分かりませんが、私はJSPで作業しており、その際 response.sendRedirect() を使って302リダイレクトを実行しています。

これを使って実験してみたことを書いておきますと、どうやら元の referer 文字列を維持したまま ( http://www.othersite.com/pageA.jsp ) が、これが通常のデフォルトの動作であり、私の側で何か変なことをしているのではないことを確認したかっただけです。


現在 302 リダイレクトを使用していますが、おそらく代わりに 301 リダイレクトを使用することができます。301 リダイレクトの動作がより確実かどうかご存知ですか?

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

簡単な答えは、関連する RFC 2616 で指定されていないことです。 http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.36 において、Referer ヘッダと 302 ステータス コードのどちらにも指定されていません。

最善の策は、いくつかのブラウザでテストを行い、一致した動作があるかどうかを確認することです。

完全なベルトと波括弧のために、リダイレクト URL で元の参照元をエンコードして、それを取得することを保証できるようにします。