3

我有一个 PHP 脚本,它通过 GET 根据 URL 中的参数进行 MySQL 插入查询。我今天注意到似乎来自同一个 LAN 的两个用户都有重复的记录,第一个记录的 IP 解析为 proxy.organization.tld 另一个记录具有相同的值,几分钟后用不同的 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 回答