检查自上次以来网址中的数据是否发生了变化?

pra*_*rac 4 http

对于给定的URL,我想检查自上次以来内容是否已更改.(http)URL的内容由脚本生成,该脚本定期进行多次修改.需要查看此脚本更改是否导致任何回归.

PRAC

War*_*enB 8

除了知道您使用的语言之外,最简单的解决方案是使用If-Modified-SinceHTTP标头格式化您的请求,并检查304服务器的(未修改的)响应.如果内容是脚本生成的静态文件,那么您的Web服务器将检查文件中已修改的时间戳.您将获得304响应,或使用新内容页面获得200(OK)响应.


Gra*_*rdx 3

执行此操作的快速方法是检查内容的标题。如果脚本生成正确的内容标头,您只需检查 Content-Age 或 Content-MD5 标头即可查看是否应重新获取内容。如果您有权访问生成响应的脚本,那么最好添加这些(如果它们不存在)。

如果您无法修改脚本,或者这些标头不存在,那么第二种最快的方法是找出页面的多少部分足以进行更改哈希,检索该部分并生成哈希以查看它是否已更改。一般来说,对小于 1MB 的内容计算 MD5 的时间相当简单,而较大的数据则需要更多时间。如果页面的第一部分有时间戳或类似的内容,您不需要散列除此之外的任何内容,因为它会告诉您内容是否更改。

当然,第三件事是,如果页面内容经常更改,但您只对内容的格式或数量更改(而不是内容本身)感兴趣,您将需要识别页面中有意义的结构并进行比较。如果您有一个正在写入日志文件的页面,则情况确实如此,您不关心日志文件本身,但您关心是否添加了日志文件或添加了新的源。这是迄今为止最难检测的。