我有一个 PHP 脚本,它通过 GET 根据 URL 中的参数进行 MySQL 插入查询。我今天注意到似乎来自同一个 LAN 的两个用户都有重复的记录,第一个记录的 IP 解析为 proxy.organization.tld 另一个记录具有相同的值,几分钟后用不同的 IP 记录地址。
我猜这与代理服务器发出 HTTP 请求并可能缓存内容有关。有没有人有任何想法或策略来处理这个问题?我想防止重复条目。
谢谢。
我有一个 PHP 脚本,它通过 GET 根据 URL 中的参数进行 MySQL 插入查询。我今天注意到似乎来自同一个 LAN 的两个用户都有重复的记录,第一个记录的 IP 解析为 proxy.organization.tld 另一个记录具有相同的值,几分钟后用不同的 IP 记录地址。
我猜这与代理服务器发出 HTTP 请求并可能缓存内容有关。有没有人有任何想法或策略来处理这个问题?我想防止重复条目。
谢谢。
在每个 url 后添加一个唯一值。这样,如果代理服务器“重新调用”该 url,您可以检测到它是重复调用。
还有其他原因可能会导致不需要的重复插入。例如,浏览器可以预取页面,蜘蛛可以跟随它不应该跟随的链接。
如果 GET 请求修改数据,则存在设计缺陷。GET 应该只用于读取,POST 应该用于修改数据。任何浏览器、代理或蜘蛛都知道 POST 请求可能会产生副作用,并会采取一切预防措施不重复它,而 GET 请求则被认为没有任何副作用。因此,它可以根据需要重复或缓存以提高性能。