浏览器用于检测用户访问过的URL的算法

时间:2013-11-02 19:32:26

标签: algorithm browser data-structures

当我正在浏览Stackoverflow时,我观察到我之前访问的那些问题都标有不同的颜色。然后我开始思考堆栈溢出是如何检测到的。

有人可以告诉我他们使用的是什么算法,不仅可以通过不同的站点使用stackoverflow吗?

可能是他们将问题编号存储在我的cookie中,在解析了cookie数据后,他们可以说出我访问过的问题。但如果我访问了很多问题,这种方法是否可行?

更新

每个人都提到这是一个浏览器属性,所以问题是他们如何记住这么多链接,他们用什么算法或数据结构存储。

1 个答案:

答案 0 :(得分:4)

实际上,它是您的用户代理(例如浏览器),即记住访问过的链接。然后,网站可以使用CSS根据自己的喜好设置样式。

  

用户代理通常以与先前访问过的链接不同的方式显示未访问的链接。 CSS提供伪类':link'和':visited'来区分它们。


至于你的更新问题。只需查看Chrome source代码,就可以将某种哈希表作为数据结构。

此外,如果您的用户代理只是感兴趣,是否访问了某个链接,您只需要计算该网址的指纹(例如city hash)并进行比较缓存的指纹与页面上找到的链接的指纹。

即使您每隔10秒访问一个新网址一整个月,并假设指纹占用40个字节,您只会消耗大约10兆字节的内存。