「投稿していただきありがとうございます。リダイレクトされるまでお待ちください。」必要ですか?


11

投稿ありがとうございます。リダイレクトされるまでお待ちください。

自動的にリダイレクトされない場合は、ここをクリックしてください。

特に90年代または2000年代初頭にWebを使用する場合は、おそらくこのようなメッセージに精通しているでしょう。私自身のプロジェクトでは、たとえば、ユーザーが登録または何かを投稿した後にリダイレクトされている間、ユーザーを2〜3秒待たせる理由を見つけたことはありません。しかし、このパターンは、PHPBBのような人気のあるWebソフトウェアでも常に出てきます。

私の質問は、リダイレクトはまだ現代の(Ajaxy)Web開発に場所/ニーズがあるのですか?このようなリダイレクトを絶対に必要とし、最終的にユーザーを困らせる状況はありますか?それらの背後にある技術的な理由は何ですか?リダイレクトが必要な場合、すぐにリダイレクトしないのはなぜですか?


推測にすぎません。スクリプト化されたアクションやボットの防止に何らかの関係があるのでしょうか。ただし、これを行うにはより良い方法があります(Captchaなど)。

ユーザーの要求により、PHPBBのインストールをすぐにリダイレクトするように変更しました。ほんの数行変更するだけで完璧に動作します。
アンドレ・Paramés

@Martin:可能ですが、そうだとすれば完全に誤解されます。ボットはブラウザのようにリダイレクトを追跡できるためです(特にPHPBBのようにLocationヘッダーがある場合)。
アンドレ・Paramés

回答:


3

このようなリダイレクトを絶対に必要とし、最終的にユーザーを困らせるような状況はありますか?それらの背後にある技術的な理由は何ですか?

最も一般的な目的(通常、データベースに新しいレコードを作成したり、支払いトランザクションを処理したりするリクエストの場合)は、ユーザーが[更新]ボタンをクリックしてリクエストを再投稿した場合にリクエストが重複しないようにすることです。

リダイレクトは、現在の(ajaxy)Web開発で場所/ニーズをまだ持っていますか?

Javascriptが無効になっているユーザーに、リクエストが無視されるか、誤って処理される可能性があることを伝えることができる場合(送信は2回以上クリックしないでください!」というメッセージが頭に浮かびます)に確認してください JSが無効になっているユーザー、および請求部門が不定期に二重請求の苦情を受け取らないようにしてください。そのため、多くのインターフェースで何らかのリダイレクトが実装されています。

リダイレクトが必要な場合、すぐにリダイレクトしないのはなぜですか?

リダイレクト複数のフォームの送信を防ぐことである場合は、即座にリダイレクト発行する必要があります。時限リダイレクトの場合、サーバーの速度が遅いか、セッションベースのロックを考慮していないか、またはより難解な問題を解決します。


「重複リクエストの防止です」-​​--サイレントロケーションリダイレクトもそれを行います。ので、それはいけない---「目標は、複数のフォームの送信を防ぐためである場合に、転送はすぐに発行されなければならない」F5Stand byのページも再送信ポストの原因となります。
zerkms

@zerkms-応答本文が送信される前に新しい場所にリダイレクトすることをお勧めします(つまり、「待機」ページがない)
danlefree

5

まず、Locationヘッダーが指定されている場合、すべてのブラウザがリダイレクトするわけではありません。次に、JavaScriptが無効になっているため、すべてのブラウザがJavaScriptでリダイレクトするわけではありません。3番目に、すべてのブラウザがメタリフレッシュタグをサポートするわけではありません。これらのケースはいずれも非常にまれであるため、おそらく問題にはなりません。しかし、たとえそうであっても、これらすべての方法を重ねることができると思います。

PHPBBページが行う方法(5秒程度待つ)はまったく必要ありません。すぐにリダイレクトする必要があり、リダイレクトしない場合は、ヘッダーの送信後にHTMLページ(メタリフレッシュとJavascriptがあり、テキストがリンクされている)が表示されます。このページが適切にプログラムされていれば、通常のブラウザで実際に表示される可能性はほとんどありません。


「まず、Locationヘッダーが指定されたときにすべてのブラウザがリダイレクトするわけではありません」[引用が必要]
Jon Cram

@Jon Cram:技術的にはWebプロキシ、および拡張機能がロケーションヘッダーに干渉する可能性があります。ブラウザーは非標準のユーザーエージェントである可能性もあり、サイトの所有者は、ユーザーが簡単にフォローできるものを提示することにより、オフサイトリンクをたどることを阻止しようとしています。
Brian Lyttle、2011年

PHPのheader()関数の呼び出しが実際には無視される可能性があることを正しく理解していますか?これはとても心配です。HTMLとJSのリダイレクト方法とそれらの信頼性の低さについてはすでに知っていましたが、サーバー側から送信されるHTTPヘッダーを実際に無視できるとは思いもしませんでした。
Lotus Notes

1
@Lotus多くの人がヘッダーを正しく送信しないので、これが大きな問題です。あなたはそれの前に多くの人々がしない3xxコードを含めることになっています。ブラウザは、必要に応じてこの要求を無視することができます(一部のクライアントではそうですが、主流のブラウザではありません)
Joe Phillips

また、Locationヘッダーは絶対 URL を送信することになっていますが、これは多くの場合無視されます。
Piskvorが建物を去った

3

私は常に適切なHTTPステータスコード(例:301または302- http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.htmlを参照)を使用して応答ヘッダーでリダイレクトを送信しますこれにより、即座にリダイレクトされます。「リダイレクトされているページにリダイレクトされるまでしばらくお待ちください」というメッセージが表示されることのある技術的な理由はわかりません。


1

これを行う主な理由は、リダイレクトされたサイトで記録が作成されるためです。ページでGoogleアナリティクスを読み込むことができますが、データはウェブログにも含まれます。

HTTPヘッダーを使用してリダイレクトを送信すると、ブラウザは元のサイトに追加のリクエストを行わずに他のサイトに移動します。JavaScriptベースのトラッキングはこれらの出口を捕らえるかもしれませんが、それはサイト所有者にトラッキングのより良い機会を与えます。

リダイレクトされるよりも、ユーザーに免責事項を提供したい場合もあります。これは、規制産業で働くウェブマスターにとって特に重要です。銀行や製薬などの規制された業界で働いていない場合、これらの要件をあまり理解できません。


要約すると、このパターンは、Webサイトでのユーザーのアクションを追跡する必要がある場合にのみ必要ですか。
Lotus Notes

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.