Skip to content

Instantly share code, notes, and snippets.

@liuxd
Last active June 20, 2024 23:06
Show Gist options
  • Save liuxd/6eae406f1c2dba89ab66d012d1b05989 to your computer and use it in GitHub Desktop.
Save liuxd/6eae406f1c2dba89ab66d012d1b05989 to your computer and use it in GitHub Desktop.
[#02 页面来源统计小结] #編程之道

页面来源统计小结

在网站的各种监控中,页面的点击来源是一个重要的数据。

常见的方式有两个:referrer,url加参数。

referrer方式

这种方式受浏览器限制,不同浏览器在用户作出不同行为时,处理方式是不一样的。比如在以下情况下,浏览器可能不发referrer。

1,修改Location对象进行页面导航
2,windowopen 方式打开新窗口
3,鼠标拖拽打开新窗口
4,点击Flash内部链接
5,HTTPS跳转到HTTP
6,收藏夹直接打开 / 地址栏手动输入

受制于用户的浏览器和浏览习惯。这会导致丢失很多数据。

url加参数

服务器端维护一个参数与来源的映射表。在页面展示链接的时候将本页的对应参数加到url后面。这样点击该url的时候就知道是从什么页面过来的了。例如:

我有映射表:index=首页,listing=列表页
用来标记来源的参数名:from
我在列表页的链接后面都加上:from=listing。比如:http://example.com/info/20834735/?from=listing
这样我在点击 http://example.com/info/20834735/?from=listing 的时候就知道页面是从列表页点过来的了。

这种方式可以比referrer方式少丢些数据,但是对于站外的链接(比如:搜索引擎)就无能为力了,因为搜索引擎会把你加了参数的链接一起抓了。这就统计了错误的数据。而且还会影响SEO。不过,如果是大型商业搜索引擎还可以通过__rel="canonical"__标签来解决,其他爬虫就无能为力了。

共同的问题

当用户在地址栏直接输入地址,无论是点收藏夹还是复制粘贴,或者手动输入,都无法正确统计页面的来源(referrer为空,url参数不能正确反映点击来源)。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment