Server.Transfer
VS Response.Redirect
に関する多くのトピックが見つかりましたが、Server.TransferとResponseの違いについては説明していません。 書き換え。Server.TransferまたはResponse.Rewriteを使用するタイミング
私が知る限り、彼らはユーザーをナビゲートするのと同じタイプの方法を使用しています。その違いは何ですか?
Server.Transfer
VS Response.Redirect
に関する多くのトピックが見つかりましたが、Server.TransferとResponseの違いについては説明していません。 書き換え。Server.TransferまたはResponse.Rewriteを使用するタイミング
私が知る限り、彼らはユーザーをナビゲートするのと同じタイプの方法を使用しています。その違いは何ですか?
Response.Redirect
は、サーバーからクライアントへリダイレクトヘッダーを送信し、新しいURLへの別のリクエストを送信します(合計:2リクエスト)。
Server.Transfer
の場合、クライアントのリクエストは1つしか発生せず、ブラウザのアドレスバーのURLは変更されません。Response.Redirect
とは異なり、ブラウザにリダイレクトの兆候がないため、 。
希望に役立ちます。
Server.Transferを使用して別のページに転送すると、サーバーリソースが節約されます。リダイレクトするようにブラウザに指示するのではなく、Webサーバー上の「フォーカス」を変更して要求を転送するだけです。つまり、非常に多くのHTTPリクエストが届くことはないため、Webサーバーへの負荷が軽減され、アプリケーションの実行速度が向上します。
ただし、「転送」プロセスはサーバー上で実行されているサイトでのみ機能するため、Server.Transferを使用してユーザーを外部サイトに送信することはできません。 Response.Redirectだけがそれを行うことができます。
第2に、Server.Transferは元のURLをブラウザに保持します。これは、デバッグ時に混乱を招く可能性がありますが、実際にデータ入力技術を合理化するのに役立ちます。
これはすべてではありません。Server.Transferメソッドには、第2パラメータ「preserveForm」もあります。これをTrueに設定すると、Server.Transfer( "WebForm2.aspx"、True)などのステートメントを使用すると、転送先のページで既存のクエリ文字列とフォーム変数を引き続き使用できます。
たとえば、WebForm1.aspxにTextBox1というTextBoxコントロールがあり、preserveFormパラメータがTrueに設定されているWebForm2.aspxに転送された場合、元のページのTextBoxコントロールの値を参照して取得できますRequest.Form( "TextBox1")。
簡単に言うと、Response.Redirectは単にブラウザに別のページを訪問するように指示します。 Server.Transferは、サーバーリクエストを減らし、URLを同じように保ちます。ちょっとしたバグを犯すだけで、クエリ文字列とフォーム変数を転送できます。
可能な複製[どれがServer.TransferとResponse.Redirectより優れているか](http://stackoverflow.com/questions/5151439/which-one-is-better-server-transfer-and-response-redirect) – slugster
重要な違いは、Response.RedirectがWebブラウザに戻って新しいURLにリダイレクトするように伝えることです。一方、Server.Transferはラウンドトリップなしでサーバー上の新しいページの処理を開始します。 –
-1投票で回答を受け入れるのは間違いです。おそらく、これはより良い質問であるので、ここでは良い答えを得ることができ、これに対してもう1つを閉じることができますか? (あるいは多分*デリケートな*複製をリンクすることができます...) –