非常に簡単な点です。アドバイスがユーザーをリダイレクトする場合、通常は
Post-Redirect-Getメソッドを使用しています。そのため、ユーザーには通常、「あなたはリダイレクトされています」というメッセージなどが表示されません。サーバーは応答でリダイレクトを送信し、ブラウザは処理を行い、指定された場所に移動します。
短い例は:
1つの理由は機能性の分離です。あなたのログインページはログイン用のもので、ダッシュボードページはユーザーのアカウント(または類似のもの)を表示するためのページです。
よろしくお願いします。リダイレクトせずにログインページにダッシュボード/その他のページを追加するだけで、別の問題が発生する可能性があります。ユーザーが/ loginと/ dashboardを使用してダッシュボードにアクセスできる場合、ログインページをブックマークするとどうなりますか?また、POSTしたページにいる場合、ユーザーがページを更新したい場合、ブラウザはおそらく再ポストすることを警告します。純粋に使い勝手の良い見方から、Facebookで自分のニュースフィードを見るだけで受け入れなければならないのであれば、これは本当に面倒です。
投稿されたページを更新するたびに、ユーザーは再びログインします。監査ログが有効になっている場合、ニュースフィードを更新する必要があるため「ログイン」レコードが読み込まれます。あなたのサイトが各ユーザのログイン時に何かをしたとしたら(例えば、メールを送り出す)、想像してみてください。ダッシュボードページを更新するだけで毎回メールが送信されます。
もう一つの理由は、認証されていないユーザーが制限されたページにアクセスしようとしたときのサイトの多くは、リダイレクトURLを提供することです。ログイン後、サイトは、ユーザーが最初に要求したページにユーザーをリダイレクトします。ログインのためのPost-Redirect-Getはこれをより簡単にします(一般的なログインのために既に実装している場合は、この機能を持たせるための努力はあまりありません)。
他にもさまざまな理由がありますが、私にとって最大のものは、フォームが再送信されないということです。ログインには関係しませんが、Post-Redirect-Getメソッドを実装していない私のサイトに「Test SMS」機能がありました。誰かが1つのテストメッセージを送信して、リフレッシュを押し続けました。数分以内に私のSMSクレジットはすべて使い切られました。はい、その人はちょうど押さえて再送信することができましたが、リフレッシュは簡単です。
「ログインアプリケーションページでユーザーのリンク先ページが読み込まれる可能性があります」 - リダイレクトとはどのように違いますか?そして、あなたはこれを一人も使わずにどうしますか? – Oded
私は答えを書いただけでなく、質問をhttp://webmasters.stackexchange.comに移すために投票しました - それはもっとそうであると思います:) –
@Jonathon Bolster:開発者の話題、そしてすべてのWeb開発者がそれを理解するわけではないという証拠があります。 – grossvogel