查看请求

优质
小牛编辑
127浏览
2023-12-01

网页基础知识

本篇介绍我们平时浏览网页时,浏览器是如何与服务器通讯交流的。目的是为了普及“请求”这一概念,以便更好的介绍Web Analytics 网站分析产品的收数原理。

网页内容是如何呈现在浏览器里的?

我们经常要和网页打交道 -- 当访问一个页面地址时(URL), 浏览器就会为我们呈现一个网页。或许我们对此习以为然。实际上,1个网页所包含的图片,文字,视频,JS代码等各种资源,都是通过您的浏览器向网络中的Web服务器发起请求,将这些资源下载到您本机,然后浏览器再渲染展现成您看到的网页。我们可以类比平时上网观看视频的过程 =>先下载/缓存 资源(MP4/avi等格式的数据),再由播放器呈现画面。

网页资源的加载需要发起许多次请求

在浏览器向Web服务器请求URL对应的HTML文件过程中,一个请求得到的响应通常不能包含一个HTML文件所包含的所有资源,因此浏览器会发起一系列请求去下载这些资源,然后渲染出完整网页。这些请求可以通过抓包工具(如Fiddler,Charles,Chrome 开发者工具等)捕获,保存,和进行查看分析。

以移动端加载百度首页为例,我们可以看到浏览器一共发送了51次请求(如下图箭头),去下载百度首页的资源(比如png图片,JS等)。而通常我们不会意识到浏览器做了这么多工作。

基于JavaScript脚本的网站监测收数原理

此处应有一张原理图

目前市场上主流的网站监测产品(包括GA,百度统计,CNZZ等),都是基于JavaScript(JS)脚本进行收数,即在页面上加载JS脚本,通过脚本与服务器(比如SiteMonitor收数服务器)进行通信(“请求与响应”)。

以SiteMonitor为例,具体做法为:

  1. 在每个网页上放置一段JS基础统计代码;
  2. 网民访问该网页,浏览器在加载网页其他元素的同时,加载并执行该JS代码;
  3. JS代码向秒针服务器 请求SiteMonitor收数脚本,并下载到浏览器上。
  4. 收数脚本加载完成,发送页面PV请求至秒针收数服务器;
  5. 收数脚本在适当的场景下发送其他请求,如心跳请求,事件监测请求等(最常见为按钮点击,虚拟PV)至SiteMonitor收数服务器,并被服务器记录。
  6. 服务器端处理收到的请求,得到默认的数据报告。 如整理计算所有请求,合并成各个会话(一次访问所有请求的集合)。同时计算这些会话的维度数据(来源类型,访客地域分布,受访内容等), 指标数据(如浏览量,平均停留时间,跳出次数,跳出率等)。
小知识 ==> 细说“请求”

浏览器向Web服务器发起请求 (Request),web服务器收到请求之后的应答,称为响应 (Response)。看几个具体实例,来了解下请求和响应:

  1. 请求图片GET 为浏览器请求的方式,一般是下载。常见情况的还有Post请求(如提交表单)。 Status 为服务器收到请求后的响应状态码,就是一个代号,比如200表示请求成功。 Size 为资源大小,Time表示请求到响应完成的耗时。 (下一例子介绍请求的明细内容。)

  2. 网站监测PV请求(以SiteMonitor V3 PV请求为例)网站监测产品的PV请求一般涵盖了当前页面的信息(如URL,Title,referrer 页面等),浏览器的信息(Cookie,页面窗口大小等),以及监测产品对页面及访客的标记信息(如页面所属站点id,访客id),当然不要忽略了时间; 点击查看请求明细,主要包括请求的Header部分及查询字符参数部分。 a. header 部分可以查看到该页面的Referrer,Cookie等信息;其中Referrer字段为我们通常所说的来源Referrer信息,一般标识了用户浏览该页面前,在当前窗口所浏览的前一页面。需要指出的是,不是所有的PV请求都有来源Referrer信息。 b. Query String Parameters 部分包含 1)如页面URL,Title (对应u字段,dt字段) 2) 如屏幕分辨率 (对应sr 字段) 3) 如页面加载代码的站点id (对应 i字段) 4) 请求本身的信息, (对应t字段,t=pageview表示PV请求) 其余的字段不需详细了解,不在此处列举。

注:Query String Parameters(查询字符串参数),即请求URL中?之后的字符。各字段之间以&符号连接。

总结:

  1. 浏览器与服务器之间通过 “请求”与“响应”进行通讯;
  2. 目前主流网站分析产品是通过在网页上嵌入JS代码,由向收数服务器请求JS脚本,通过脚本发送各种类型的请求【如PV请求,虚拟PV请求,事件监测请求(常见有按钮点击,表单提交,订单,自定义指标,目标等),心跳请求】与收数服务器进行通信。
  3. 收数服务器记录请求,得到日志,并进行处理,得到默认的报告(由分析的维度与指标构成)。