3

BeginRequest イベント メソッドで Response.Redirect を使用して宛先ページを変更する URLRewriting モジュールがあります。

  • Response.Redirect の代わりに Server.Transfer または Server.TransferRequest を使用する方がよいでしょうか?
  • ソリューションには他の HTTP モジュールがあります。Server.Transfer を使用して他のモジュールをバイパスしますか?それとも、ブラウザーへの往復を保存するだけで、サーバーは新しい要求であるかのように開始しますか?
  • クライアントは違いに気づき、サーバーはリクエストを別の方法で処理しますか?

次の質問は、リダイレクトと転送の違いをカバーしていますが、HTTP モジュール内ではカバーしていません。

編集: HttpContext.RewritePathもモジュールで使用されるため、最初の Request を元のパスから移動するには 3 つの手法があるようです。Redirect、Transfer、RewritePath のそれぞれ。ブラウザーに戻り、HTTP パイプラインの最初に戻り、新しいパスで処理を続行します。

4

1 に答える 1

7

Redirect と Transfer と RewritePath の最適な説明は次のとおりです。http://www.developerfusion.com/article/4643/implementing-http-handlers-in-aspnet/4/

要約すると; Redirect はブラウザへのラウンドトリップを必要とし、Transfer は元の Request オブジェクトが新しいリクエストではないことを保証しますが、Post-backs に問題があります。Rewrite は元の Request オブジェクトを失いますが、パフォーマンスには最適です。

于 2010-01-05T16:10:19.313 に答える