6

我正在从事一个类似于 stackoverflow.com 概念的项目

会有很多问题,我希望每个问题都有一个页面浏览计数器。

我觉得最好的方法是使用数据库,因为问题的数量会很大,而且会随着时间的推移而增加。

如果我只是创建了一个 TABLE Question_Views 并为每个问题设置一行,那将非常容易。

像这样的东西。

ID-----Question_ID------Views
1-------23--------------400
2-------24--------------301
3-------25--------------123

但是页面计数器是否考虑了 IP 地址?意思是,如果我打开第 23 个问题的网页,然后改天我也会查看这个问题,它是增加 1 还是增加 2?

如果我需要考虑 IP 地址,这种方法有点错误,对吧?

4

2 回答 2

1

这听起来很简单——但如果你喜欢一个准确的计数器,那就不是了。
你有

  • 读取和索引您的页面的机器人,包括已知和未知的
  • 禁用 cookie 和/或禁用 javascript 的用户
  • Google 和 Bing 从您的网站捕获图像以供上一个直播
  • 一次又一次加载页面以进行刷新的用户
  • 位于公司防火墙后且拥有通用 ip 的用户。
  • 由于使用动态 ip 连接而更改 ips 的用户
  • 试图操纵数据的攻击者。

就在今天,YouTube从页面浏览量中删除了数十亿的虚假统计数据!

所以现在的问题是,你要测量什么?

  1. 访问 ?
  2. 访客?
  3. 页面浏览量?
  4. 独特的页面浏览量 ?

点击量、访问量、访问者、综合浏览量和唯一浏览量之间的差异对于您如何衡量浏览量至关重要。

对于如何识别访问者而不是机器人或试图操纵计数器的攻击者也很重要?

一个想法是跟踪所有这些参数,并显示独特的页面浏览量。一个用户可以算作 1 次唯一的页面查看,即使是查看该页面 10 次对于有 cookie 的会话。当会话到期并且用户再次出现时,例如,如果他在 60 分钟后没有会话,那么您再次计算他。

而这里的困难在于找到所有的机器人,以及看到一页就走的“虚假用户”。

于 2012-12-25T22:20:59.503 回答
1

当然,这取决于。您是否希望同一用户刷新页面计为两次页面浏览?如果一个用户每小时看到两次相同的页面呢?还是一天两次?

弄清楚你想要什么,然后它会更容易实现。

另外,不要将 IP 地址用于任何事情。而是通过 HTTP 会话识别您的用户。

于 2012-12-25T22:02:20.140 回答