サーバー側には http インターフェースがあり、クライアントはこのインターフェースを呼び出して、post または get リクエストを開始して特定のデータを取得します。クライアントが頻繁にリクエストを開始しないように制限するために、リクエストを開始するまでに少なくとも 60 秒かかります。ここで行うことは、リクエストが開始された時間を記録し、現在の呼び出しと最後の呼び出しの時間を比較し、それが 60 秒未満の場合は、特定のステータス コードを返します。この方法以外にもっと簡単な方法はありますか?たとえば、サーバーの Apache の設定について、アドバイスをお願いします。よろしくお願いします。
これより簡単なことはありません
サービスの頻度を制限すると(Apache の応答を制限するなど)、1 人のユーザーにしかサービスを提供できないため、
そこでクライアントが 10 人いる場合、10 番目のクライアントは、最初のクライアントのリクエストから 10 分後まで応答を受け取りません
これは明らかに不合理です
これより単純なことはありません
なぜなら、ユーザーにサービスを提供するだけではできないからです。サービスの頻度は制限されています (Apache の応答を制限するなど)
クライアントが 10 個ある場合、10 番目のクライアントは最初のクライアントが応答を要求してから 10 分後まで応答を取得できません
これは明らかに不合理です
インターフェースでは、memcache または redis を使用して識別子 (IP またはユーザー ID など) を記録し、有効期限 (60 秒など) を設定します。次回アクセスしたときに、この値があるかどうかを判断し、ない場合はアクセスが許可されます。 「はい」の場合は、有効期限が切れていないことを意味します。アクセスできません。メモリの記録は高速になるはずです。
私は上記のようなことにさらされていないので、まず調べる必要があります。
この機能を実装する必要がある場合は、3 階で説明した解決策が適しています
ユーザー アクセス インターフェイスのイベントをログに書き込み、対応する制限を設けるだけです。