Ruby on rails 如何有效地识别2个URL将返回不同的内容?

Ruby on rails 如何有效地识别2个URL将返回不同的内容?,ruby-on-rails,http,url,web,web-crawler,Ruby On Rails,Http,Url,Web,Web Crawler,我想检查两个URL是否不同或相同,即HTTP响应是否相同。假设我有一个URLhttp://www.example.com/some/path?q=abc&time=12334。然后我从这个http://www.example.com/some/path。现在我想检查这些URL是指向同一内容块还是指向不同的集合。一般来说,它们是相同的,但如果响应基于查询参数,它们将不同。以下是一个例子: https://www.google.co.in/search?q=techcrunch&source=lnm

我想检查两个URL是否不同或相同,即HTTP响应是否相同。假设我有一个URL
http://www.example.com/some/path?q=abc&time=12334
。然后我从这个
http://www.example.com/some/path
。现在我想检查这些URL是指向同一内容块还是指向不同的集合。一般来说,它们是相同的,但如果响应基于查询参数,它们将不同。以下是一个例子:

https://www.google.co.in/search?q=techcrunch&source=lnms&tbm=isch
https://www.google.co.in/search
是不同的URL。最明显的方法是执行GET请求并比较响应(或者可能是页面标题,这实际上是可行的),或者维护此类网站的缓存列表(并保持更新-容易出错且更具反应性)


有没有更有效的方法?我试着通过做一个HEAD请求来比较这两个请求的“内容长度”,但很多请求都不一定返回它。这个问题还有其他可能的解决方法吗?

你可以尝试一些简单的方法

require 'net/http'
first = Net::HTTP.get('google.com', '/')
second = Net::HTTP.get('twitter.com', '/')
first == second #=> false

判断两个请求是否返回不同信息的唯一方法是发出两个请求。请注意,内容长度可能相同,但内容100%不同。@DaveNewton我正在寻找一种更实用、更有效的解决方案,但有一定的误差。但可能没有。这不起作用,因为网页中的标识符(CSRF令牌等)在每次加载时都会发生变化。正如我在问题中提到的那样,虽然这种方法的一种变体可能会起作用,比如比较标题等,但如果可能的话,我正在寻找一种更有效的方法。