网站分析的HTTP

摘要: HTTP(HyperText Transfer Protocol,超文本传输协议)是互联网上应用最为广泛的一种网络协议。它是服务器与客户端之间请求与应答的标准。当客户端与服务端发生HTTP通讯时候,一些重要的信息都会包含其中

网站分析的HTTP

 

HTTP(HyperText Transfer Protocol,超文本传输协议)是互联网上应用最为广泛的一种网络协议。它是服务器(网站)与客户端(浏览器)之间请求与应答的标准。通过在HTTP或HTTPS协议后补充URL实现具体资源的定位。当客户端(用户浏览器)与服务端(网站服务器)发生HTTP通讯时候(过程参见Cookie的实现),一些重要的信息都会包含其中:

请求信息(Request Message)

当客户端(用户浏览器)发出的请求时,会包括以下信息:

. 请求行:声明请求方法和具体的请求地址;

. 头(请求头,Headers),请求的相关信息;

. 空行

. 其他消息

常用请求方法

HTTP通讯也常包含有不同的方法,常用的方法有:

. GET方法:向指定的资源发出“显示”请求。

. POST方法:向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。数据被包含在请求本文中。

状态码(Status Code)

当某个方法被请求之后,服务器会响应一个状态码。常用的状态码包括:

  • 200 OK(正常访问)
  • 301 Moved Permanently(永久迁移,永久重定向)
  • 302 Found(查找,暂时重定向)
  • 304 Not Modified(请求文件无修改)
  • 404 Not Found(未找到)
  • ……

可以看到,状态码是有分类原则的:

  • 1XX:临时响应;
  • 2XX:成功;
  • 3XX:已重定向;
  • 4XX:请求错误;
  • 5XX:服务器错误;

Google站长工具帮助文档也有这样一份HTTP 状态代码的说明。另外,W3有一个详细标准的HTTP/1.1 状态码列表

HTTPS

安全超文本传输协议,开头为 https:// 。

Google Analytics(Universal Analytics)请求

首先,当网页被加载到Google Analytics(Universal Analytics)跟踪代码的时候,跟踪代码会去向GA服务器请求analytics.js文件,当发现返回的文件与用户本地的一致的时候,则不会下载该文件。如果不一致,则会重新下载一个analytics.js文件。

这里我使用了Chrome浏览器开发者工具(当然,也可以使用Fiddler这类更强大的抓包工具)查看这个analytics.js的请求,我们可以看到:

01

02

03

Request URL:http://www.google-analytics.com/analytics.js

Request Method:GET

Status Code:304 Not Modified

这样就表示:

  • 请求URL(Request URL)是analytics.js的地址;
  • 请求方法(Request Method)是GET;
  • 状态码:304 Not Modified(未修改)

注意:这里的文件比较不是仅比较文件,会先比较请求地址,然后再比较文件,因此,当Google Analytics被部署到越多网站的时候,意味着大多数用户都不需要重新下载这个文件。而如果你部署一个本地版(网站服务器)的analytics.js,就意味着您网站的用户很可能需要新下载这个文件。

紧接着,当下载完analytics.js和收集完跟踪数据之后,Google Analytics会向GA服务器发送数据收集的请求:

01

02

03

Request URL:http://www.google-analytics.com/collect?v=1&_v=j11&a=800631110&t=pageview&_s=1&dl=http%3A%2F%2Fwww.abbo.cn%2Ftest.html&dr=&ul=zh-cn&de=UTF-8&dt=JavaScript%20%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD&sd=32-bit&sr=1920x1080&vp=1920x913&je=1&fl=11.8%20r800&_utma=199317630.1953204040.1373639607.1373643235.1373643241.5&_utmz=199317630.1373643241.5.5.utmcsr%3Dgoogle%7Cutmccn%3Dhot%7Cutmcmd%3Dcps&_utmht=1375878643647&_u=MACC~&cid=1172761150.1374069301&tid=UA-41464639-1&z=40436446

Request Method:GET

Status Code:200 OK

这就是Google Analytics(Universal Analytics)数据收集请求,OMG!请求URL怎么会这么长?我们将请求URL格式化一下,提取其中的查询参数(QueryString):

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

v:1

_v:j11

a:800631110

t:pageview

_s:1

dl:http://www.abbo.cn/test.html

dr:

ul:zh-cn

de:UTF-8

dt:JavaScript

sd:32-bit

sr:1920x1080

vp:1920x913

je:1

fl:11.8 r800

_utma:199317630.1953204040.1373639607.1373643235.1373643241.5

_utmz:199317630.1373643241.5.5.utmcsr=google|utmccn=hot|utmcmd=cps

_utmht:1375878643647

_u:MACC~

cid:1172761150.1374069301

tid:UA-41464639-1

z:40436446

Google Analytics(其他统计工具也大体类似原理)通过向GA服务器上一个35B的gif文件发出一个请求,然后将在网页上统计到的数据都写在请求URL的查询参数(QueryString)中了。这样一来,GA服务器则会收到带有统计信息的请求日志了。

最终,GA服务器通过分析这些日志,处理完写入到数据库,再由数据接口读出来,便成了我们从Google Analytics中看到的数据报告了!

参考资料:

 

【本文精选自:http://www.myttnn.com/web-analytics/http/

技术控是百度新闻与钛媒体合作,专门为技术爱好者打造的栏目

本文系作者 精选 授权钛媒体发表,并经钛媒体编辑,转载请注明出处、作者和本文链接
分享到:

第一时间获取TMT行业新鲜资讯和深度商业分析,请在微信公众账号中搜索「钛媒体」或者「taimeiti」,或用手机扫描左方二维码,即可获得钛媒体每日精华内容推送和最优搜索体验,并参与编辑活动。

精选
精选

精选和转载来自其他媒体的趣闻

评论(1

Oh! no

您是否确认要删除该条评论吗?

分享到微信朋友圈