none
F5キーによる同一リクエストを防ぐ方法 RRS feed

  • 質問

  • Redirectで別ページに遷移中に画面が真っ白になり、その間にF5キーを長押しすることで遷移先URLにて

    大量のリクエストが発生してしまいます。

    防ぐ方法はありますでしょうか。

    環境:IE9

    以下、対応済み

    ・JavaScriptによるファンクションキーの無効化

    ・Submit後の画面ブロック(二重送信対応)

    2019年6月22日 0:40

すべての返信

  • ASP.NET のフォーラムに投稿されてますが、質問の内容を見る限り Web サーバー側での対応の話ではなく(ASP.NET は関係なく)、ブラウザ側での対応の話(IE の話)のようですが、いかがですか?
    2019年6月22日 1:35
  • 根本的にはF5リロードしたくなるような遅い応答は返さないことです。また、MSDNフォーラムでもそうですが、submitはajaxで送信しページ読み込みとは分離することです。この場合、F5リロードしたとしてもページが読み込まれるだけで再送は発生しません。
    2019年6月22日 3:07
  • クライアント側だけではなく、サーバー側で防ぐ方法があればと思い、投稿しています。
    2019年6月22日 3:09
  • 応答が遅いかどうかではなく、F5キーを長押しされた場合に遷移先へのリクエストを大量発生させないようにしたいことが目的です。submit後に別ページに遷移するため、再送とは関係ありません。
    2019年6月22日 3:37
  • > クライアント側だけではなく、サーバー側で防ぐ方法があればと思い、投稿しています。

    ないと思います。なぜなら、質門者さんの目的は、

    > F5キーを長押しされた場合に遷移先へのリクエストを大量発生させないようにしたいことが目的です。

    ということだそうですので。

    リクエストを発生させるのはクライアント側でしかなく、サーバー側(ASP.NET)は関係ないです。だから、その「目的」のために ASP.NET で対応できることはありません。


    ただ、

    > Redirectで別ページに遷移中に画面が真っ白になり

    というということが起こるのは解せませんし、その時点で F5 キーで遷移先にリクエストを送るというのも解せませんが・・・ でも、それは質問者さんの「目的」とは関係ない別の話と理解しています。
    2019年6月22日 4:23
  • 同一のリクエストが発生した場合に、サーバ側で一時的にリクエストを受け付けない等、対応することは可能でしょうか。
    2019年6月22日 5:19
  • > 同一のリクエストが発生した場合に、サーバ側で一時的にリクエストを受け付けない等、対応することは可能でしょうか。

    DOS 対策をするということになると思います。

    iis dos protection などをキーワードにググると参考になる記事がヒットすると思いますのでやってみてください。
    2019年6月22日 5:49
  • ありがとうございます。

    調べてみます。

    2019年6月22日 11:20
  • F5 キーでリクエストの再送が行われるのは Web アプリケーション(サーバー)とは無関係なクライアント(ブラウザー)の機能で、ユーザーが任意にリクエストを送信できるというのは Web テクノロジーの基本のキなので、何が良くないかと言えばユーザーが F5 を押したくなるようなレスポンスの悪さであり、また再送リクエストを適切にハンドリングできない Web アプリケーションの作りの問題です。

    局所的に言えば

    F5キーを長押しされた場合に遷移先へのリクエストを大量発生させないようにしたい

    というのは不可能な話なので、それ以外の観点で問題を解決する必要があります。


    Hebikuzure aka Murachi Akira

    2019年6月23日 7:20