Stephen的referrer统计系统使用和改进:如何对来自百度的来源进行统计

referer是HTTP协议中,记录用户访问当前网页前的链接地址,通过referer机制,可以把互联网的上各个节点天然自动关联成一个地图。
目前很多站点上显示的最新来源(referer)统计都是用的是:
Stephen的referrer统计系统

由于他的http://www.downes.ca/每天要承受85万的日统计访问量并承受大量的SPAM(referer作弊),因此已经关闭了referrers统计系统,但系统程序本身是基于GNU版权公开发布的,所以其实每个服务器上都可以安装(我在51.net上安装没成功)

以下是我的安装和改进简介:

目前有2个版本:
一个是1.0版本,也是我目前网站上在用的
另外一个是开发中的2.0版本,加入了对数据的支持。但是目前还没有找到安装文档。

安装:
一个是嵌入页面中的JavaScript代码referrers.js,一个是后台的CGI统计程序referrers.cgi

比如把referers.js部署在
http://www.example.com/referrers.js
其中的代码指向:
http://www.example.com/cgi-bin/website/referrers.cgi

在需要进行来源统计的页面中将
<script language="Javascript"  src="http://www.chedong.com/referrers.js"></script>
嵌入就可以了

改进:如何让百度的来源得以显示
以前遇到一个问题,来源统计中来自搜索引擎的应该很多,但是没有百度的:我检查了一下发现通过以下方式可以记录。可能是百度的搜索页面baidu?word=xxx做了一些特别的设置导致了无法统计吧
可能是因为http://www.google.com/search参数为空,Google仍然可以返回带有标题的网页,但是百度http://www.baidu.com/baidu如果没有参数,就是“找不到网页”了。所以REFERER系统在去掉参数后,就可能找不到来源。

我发现在代码中加入以下修改,按照真对类似Google的方式统计来自百度和3721的来源,搜索结果也就会有统计了:
if ($in =~ /google/ig) { $in = "http://www.google.com"; } # Standardize Google
if ($in =~ /baidu/g) {$in = "http://www.baidu.com";} # Standardize Baidu
if ($in =~ /3721/g) {$in = "http://www.3721.com";} # Standardize 3721

其实,目前的REFERER统计系统是精确到页面级的,在后面的版本中都变成域名级的了。

另外:字符集问题
由于JS的显示页面和来源页面的字符集不一致:比如来源网站是简体中文GBK字符集,而JS嵌入的页面是UTF-8,这样在显示的时候就有可能乱码。另外:MT的TRACKBACK中也有类似问题。

因此需要进行一些字符集的检测和转换过程。近期我打算参照在AWStats中做的UTF-8自动检测改进对referer.js做一些改造。

总体来说:referrers系统 1.0由于记录是基于CGI对文本的操作的,总体效率不是很高,但是配置简单,很适合小访问量的个人站点使用,包括很多BLOG系统本身,都是非常小巧,适合个人构建,这样很多服务和内容就不会因为个别服务商网站的倒掉对内容,也就是互联网所提倡的所谓的“分权”和“无中心化”(Decentralization)

注释:
HTTP标准中的referer的确是一个笔误:少了一个'r',应该是referrer,但用的时间长了,也就成了标准。

后记:
6E完成了一个修正后的版本,并提供了服务。

作者: 车东 发表于:2004-03-23 13:03 最后更新于:2007-04-15 19:04
版权声明:可以转载,转载时请务必以超链接形式标明文章 的原始出处和作者信息及 本版权声明

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值