0

Fiddler を使用すると、ページ遷移時にサイトが壊れることがあるのはなぜですか。

サーバー側のリダイレクト後 - http 応答 (Fiddler にある) で、次のようになります。

オブジェクトが移動しました

オブジェクトはここに移動しました。

このサイトは ASP.NET 1.1 / VB.NET 1.1 [sic] サイトです。

なぜフィドラーは私のためにそこに行かないのですか? 理解できません。

開発中はこの問題に問題はありませんが、他のプロキシ サーバーが「実際の顧客」にこの問題を引き起こす可能性があるのではないかと心配しています。何が起こっているのか正確にはわかりません。

4

3 に答える 3

5

それが実際に Response.Redirect が行うことです。302 - オブジェクトが移動しましたという応答をユーザー エージェントに送信します。ユーザー エージェントは、302 応答で指定された URL に自動的に移動します。クライアントへのラウンドトリップなしで実際のサーバー側のリダイレクトが必要な場合は、Server.Transfer を試してください。

于 2008-10-29T06:45:27.400 に答える
3

リクエスト ビルダーを使用してリクエストを作成しただけでは、Fiddler が返されたリダイレクトを自動的にたどることはありません。

対照的に、IE やその他のブラウザーを使用している場合は、通常、リダイレクト ヘッダーをチェックして追跡します。

特に IE の場合、あいまいな状況でブラウザがリダイレクトをたどらないという、まれなタイミングのケースがあると思います。多くの場合、[ツール] / [フィドラー オプション] をクリックして、「サーバー」と「クライアント」の両方のソケット再利用設定を有効にすることで、これを修正できます。

于 2009-05-09T04:18:48.200 に答える
1

user15310に感謝します、それはServer.Transferで動作します

Server.Transfer("newpage.aspx", true);

まず、Server.Transferを使用して別のページに転送すると、サーバーリソースが節約されます。ブラウザにリダイレクトするように指示する代わりに、Webサーバーの「フォーカス」を変更してリクエストを転送するだけです。これは、通過するHTTPリクエストの数が少ないことを意味します。これにより、Webサーバーへの負荷が軽減され、アプリケーションの実行速度が向上します。

ただし、注意してください。「転送」プロセスはサーバー上で実行されているサイトでのみ機能するため、Server.Transferを使用してユーザーを外部サイトに送信することはできません。Response.Redirectだけがそれを行うことができます。

次に、Server.Transferはブラウザで元のURLを維持します。これは、デバッグ時に混乱を招く可能性がありますが、データ入力手法の合理化に非常に役立ちます。

それだけではありません。Server.Transferメソッドには、2番目のパラメーター「preserveForm」もあります。Server.Transfer( "WebForm2.aspx"、True)などのステートメントを使用してこれをTrueに設定すると、転送先のページで既存のクエリ文字列とすべてのフォーム変数を引き続き使用できます。

詳細はこちら: http ://www.developer.com/net/asp/article.php/3299641/ServerTransfer-Vs-ResponseRedirect.htm

于 2011-03-21T21:30:18.973 に答える