开发者学堂课程【大数据分析之企业级网站流量运营分析系统开发实战(第一阶段):网站流量日志埋点收集—原理实现分析】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/693/detail/12172
网站流量日志埋点收集—原理实现分析
内容简介
一、原理分析
二、小结
一、原理分析
要想去埋点收集用户的行为数据,该如何设计一个系统。
结合我们上节内容学习的雏形图,我们现在学习应该真正可以用来收集用户行为数据的埋点系统,该如何去理清它。
再次强调:埋点指我们的页面上预先埋上一段 js 代码然后用户的行为去触发它来进行用户数据的收集,只不过为了后期更好维护,为了性能做了某种改变,某种性能的优化。
图片剖析:
我们去收集用户的行为数据,用户不管是通过移动端还是其他访问网站都需要通过浏览器 broswer 发起请求,所以浏览器相当于客户进入网站交互的终端。
浏览器去访问请求页面,所以 page 是用户访问的页面(待收集数据的页面),埋点代码是写在此页面上的,红色粗框是待搜集数据的页面,埋点代码的页面。
如果把 js 写死在页面则耦合性太强,不利于后期的维护,所以我们要通过改变,把收集数据的 js 单独拉取出变成文件 javascript(collect client data),绿色小框是真正收集数据的 js。因为 js 必须在页面上才能执行,所以需要把 js 引至页面,所以需要通过 src 属性引入加载至页面上,这样就完成了前端的一个设计(红色大框是前端服务器)。
当我们把绿色的 js 收集至页面上之后,它就开始进行我们数据的收集。那么收集的数据需要发往另一台服务器collect.itcast.cn,这时候我们单独部署一台服务器来接收请求,就涉及如何把前端服务器的数据发送至另一台机器上。
这时已经不能使用 js 直接发送了,所以需要伪装请求图片<img src=”collect.itcast.cn/log.gif> , 重点不是这张图片,而是图片后面采集的数据,不管收集多少参数都可以拼接在请求的后面。所以前端 js 收集用户行为数据把数据以参数的形式拼接在请求图片的 url 后面,发送至指定的服务器。
这样就完成了前端的工作,接下来逻辑,功能来到后端。作为后端,别人发起请求需要做什么?需要接收请求和解析参数(重中之重),响应图片(log.gif1*1)以及响应 cookie(涉及用户行为追踪问题,cookie 是在浏览器端用来标识用户访问信息的,也就是说当用户第一次来时,响应生成一个 cookie,后续再访问同样的网站,就会自动携带cookie,除非 cookie 被强制删除,这样就可以根据 cookie 值判断这个日志,行为是属于哪个用户)
二、小结
上述图片就是企业要想实现上线进行用户行为埋点收集的原理图
当中重点考虑了两个性能点,第一个是为了便于后期数据收集 js 的维护,我们把它和页面做了解耦合,未写死在页面上。
第二个是为了降低一台服务器的压力,单独部署一台服务器专门用于数据的接收,所以以发送图片的形式解决跨域问题。