【发布时间】:2015-01-04 19:27:41
【问题描述】:
我想检查 2 个 URL 是否不同或相同,即 HTTP 响应是否相同。假设我有一个 URL http://www.example.com/some/path?q=abc&time=12334。然后我从这个http://www.example.com/some/path 创建一个基本 URL。现在我想检查这些 URL 是指向同一个内容,还是指向不同的集合。一般来说,它们是相同的,但如果响应基于查询参数,它们会有所不同。这是一个例子:
https://www.google.co.in/search?q=techcrunch&source=lnms&tbm=isch 和 https://www.google.co.in/search 是不同的 URL。显而易见的方法是进行 GET 请求并比较响应(或者可能是页面标题,这实际上可以工作),或维护此类网站的缓存列表(并不断更新 - 容易出错且本质上更具反应性)。
有没有更有效的方法来做到这一点?我尝试通过执行 HEAD 请求来比较 2 个请求的“内容长度”,但其中很多不一定返回它。有没有更多可能的方法来解决这个问题?
【问题讨论】:
-
判断两个请求是否返回不同信息的唯一方法是发出两个请求。请注意,内容长度可能相同,但内容 100% 不同。
-
@DaveNewton 我一直在寻找一种更实用、更有效的解决方案,并且有一定的容错性。但可能没有。
标签: ruby-on-rails http url web web-crawler