3

GET を介して URL のパラメーターに基づいて MySQL 挿入クエリを作成する PHP スクリプトがあります。今日、同じ LAN から来ているように見える 2 人のユーザーが両方ともレコードが重複していることに気付きました。最初のレコードは proxy.organization.tld に解決される IP で、別のレコードは同じ値で、数分後に別の IP で記録されます。住所。

これは、プロキシ サーバーが HTTP 要求を作成し、コンテンツをキャッシュしている可能性があることに関係していると推測しています。これに対処するためのアイデアや戦略を持っている人はいますか? 重複エントリーを防ぎたい。

ありがとう。

4

2 に答える 2

2

各 URL の後に一意の値を追加します。そうすれば、プロキシ サーバーが URL を「再呼び出し」した場合に、それが重複した呼び出しであることを検出できます。

于 2011-10-18T02:51:30.593 に答える
0

不要な重複挿入が発生する理由は他にもあります。たとえば、ブラウザはページをプリフェッチできますし、スパイダーは本来すべきではないリンクをたどることができます。

GET 要求がデータを変更する場合、設計上の欠陥があります。GET は読み取りのみに使用し、POST はデータの変更に使用する必要があります。ブラウザ、プロキシ、またはスパイダーは、POST リクエストに副作用がある可能性が高いことを認識しており、GET リクエストには副作用がないと言われていますが、それを繰り返さないようにあらゆる予防措置を講じます。したがって、パフォーマンスを向上させるために、必要に応じて繰り返したりキャッシュしたりすることができます。

于 2015-06-26T17:57:44.653 に答える