这是我的域名www.iyizhan.com。暂无内容,当中仅仅有一个页面index.html。

在index.html上放置了例如以下的 js 脚本:

<script 

src="http://s11.cnzz.com/stat.php?id=5364825&web_id=5364825" 

language="JavaScript">

</script>





1.当用户訪问这个页面时,会请求src,相应的是上面的脚本的源文件:

Request URL:http://s11.cnzz.com/stat.php?id=5364825&web_id=5364825

请求的query:

id:5364825 //站点id

web_id:5364825 //站点id

脚本会对当中的參数赋值,当中this.q = "CNZZDATA" + this.c为cookie名 

cnzz.js中的函数L会为生成一个我的站点域下的cookie,即

名称: CNZZDATA5364825

内容: CNZZDATA5364825=cnzz_eid%3D2115650326-1406861325-%26ntime%3D1406869345

//CNZZDATA5364825=cnzz_eid=2115650326-1406861325-&ntime=1406869345

域: www.iyizhan.com

当中的ntime会随着訪问而更新。

//上面的cookie值表示的不过三个时间值。





并触发例如以下的链接请求:





2.Request URL:

http://hzs14.cnzz.com/stat.htm?id=5364825&r=&lg=zh-cn&ntime=1406861325&cnzz_eid=124331323-1406861325-&showp=1280x800&t=zhaohf-CNZ...&h=1&rnd=1196942655

(这个请求一个1x1的不可见像素,当中的參数代表不同的含义)

id:5364825 //站点id

r:weibo.com //refer,来源。

lg:zh-cn //页面语言

ntime:1406861325 //now time请求时的时间戳

cnzz_eid:124331323-1406861325- //一个随机数(过期时间)-首次訪问时间,差即cookie的生命周期

showp:1280x800 //页面(屏幕)大小

t:zhaohf-CNZ...//页面的title

h:1 //?

rnd:1196942655 //random,一个随机数,目的是每次訪问都要请求





请求头中例如以下:

Accept:image/webp,*/*;q=0.8

Accept-Encoding:gzip,deflate,sdch

Accept-Language:zh-CN,zh;q=0.8

Cookie:

cna=YuVcDKp/IhQCAXL/FAmu3PJk; 

PHPSESSID=7e0dc5ea1b0fa3b5357f0b46cb4245d5; 

lzstat_uv=22071519872809337448|3037573; 

UC_SID=e3a977d0ecd733fb2adb54b5a3cfc3ae; 

TJ_LG=cnzz; 

Host:hzs14.cnzz.com

Proxy-Connection:keep-alive

Referer:http://www.iyizhan.com/

User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36





3.Request URL:http://c.cnzz.com/core.php?

web_id=5364825&t=z

这相应的是一个js脚本。





4.Request URL:http://cnzz.mmstat.com/9.gif?

abc=1&rnd=659454759



server写入cookie:

Set-Cookie:aui=137828086; expires=Mon, 29-Jul-24 03:49:34 GMT; path=/; domain=.cnzz.mmstat.com

Set-Cookie:atpsida=69e4ef05fb4ee7ea895ac82a_1406864974; expires=Mon, 29-Jul-24 03:49:34 GMT; path=/; domain=.cnzz.mmstat.com





5.Request URL:http://pcookie.cnzz.com/app.gif?

&cna=YuVcDKp/IhQCAXL/FAmu3PJk

请求还有一张图片,当中的參数

cna=YuVcDKp/IhQCAXL/FAmu3PJk

是上一步生成的cookie

回传给server

返回的是在cnzz.com下的cookie:

Set-Cookie:cna=YuVcDKp/IhQCAXL/FAmu3PJk; expires=Mon, 29-Jul-24 03:49:34 GMT; path=/; domain=.cnzz.com





------------------------------------------------------------------





由上可见。用户第一次訪问站点时,会向cnzz发例如以下的5个请求(例如以下图):

1.请求第一个 js 脚本(我命名为cnzz.js)

2.上一步的 js 在用户端浏览器上运行,向cnzz请求一个html文件。

当中的内容仅仅有1x1不可见像素。作用是发送parameter数据

3.请求第二个 js 脚本(我命名为core.js)

4.此脚本在用户的浏览器运行后会触发一个新的请求,向cnzz.mmstat.com请求一个1x1图片。

目的是server端生成cookie返回给浏览器

5.浏览器得到cookie之后将cookie发送给pcookie.cnzz.com。这个应该是专门处理cookie的server

。然后把新的cookie设置到cnzz.com域上。并返回给用户浏览器

------------------------------------------------------------------

以上是用户首次与CNZZ交互的所有过程。

之后訪问的话,就仅仅有前3个请求(例如以下图),即请求cnzz.stat.php,stat.html,core.php

并在cookie中带有 cna=YuVcDKp/IhQCAXL/FAmu3PJk,用来推断有几个Unique Visitor.



watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGFvemhhb2t1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

没有接着发请求是由于:返回的第二个js文件里的

"0" === m && k.callRequest([l + "//cnzz.mmstat.com/9.gif?

abc=1"])

能够发现反复訪问的时候,返回的m = "1",即不会运行这个请求。

------------------------------------------------------------------

//注:点击【站长统计】就可以看到统计结果,只是基本为0。

CNZZ站点流量统计原理简析的更多相关文章

  1. [转帖]简析数据中心三大Overlay技术

    简析数据中心三大Overlay技术 http://www.jifang360.com/news/20161010/n225987768.html 搭建大规模的云计算环境需要数据中心突破多种技术难题,其 ...

  2. 基于IdentityServer4的OIDC实现单点登录(SSO)原理简析

    写着前面 IdentityServer4的学习断断续续,兜兜转转,走了不少弯路,也花了不少时间.可能是因为没有阅读源码,也没有特别系统的学习资料,相关文章很多园子里的大佬都有涉及,有系列文章,比如: ...

  3. Linux网络性能优化方法简析

    Linux网络性能优化方法简析 2010-12-20 10:56 赵军 IBMDW 字号:T | T 性能问题永远是永恒的主题之一,而Linux在网络性能方面的优势则显而易见,这篇文章是对于Linux ...

  4. 简析.NET Core 以及与 .NET Framework的关系

    简析.NET Core 以及与 .NET Framework的关系 一 .NET 的 Framework 们 二 .NET Core的到来 1. Runtime 2. Unified BCL 3. W ...

  5. 简析 .NET Core 构成体系

    简析 .NET Core 构成体系 Roslyn 编译器 RyuJIT 编译器 CoreCLR & CoreRT CoreFX(.NET Core Libraries) .NET Core 代 ...

  6. RecycleView + CardView 控件简析

    今天使用了V7包加入的RecycleView 和 CardView,写篇简析. 先上效果图: 原理图: 这是RecycleView的工作原理: 1.LayoutManager用来处理RecycleVi ...

  7. Java Android 注解(Annotation) 及几个常用开源项目注解原理简析

    不少开源库(ButterKnife.Retrofit.ActiveAndroid等等)都用到了注解的方式来简化代码提高开发效率. 本文简单介绍下 Annotation 示例.概念及作用.分类.自定义. ...

  8. PHP的错误报错级别设置原理简析

    原理简析 摘录php.ini文件的默认配置(php5.4): ; Common Values: ; E_ALL (Show all errors, warnings and notices inclu ...

  9. Android 启动过程简析

    首先我们先来看android构架图: android系统是构建在linux系统上面的. 所以android设备启动经历3个过程. Boot Loader,Linux Kernel & Andr ...

随机推荐

  1. [扩展推荐] Laravel 中利用 GeoIP 获取用户地理位置信息

    我最近需要一个用户地域检测来设置用户的默认区域和货币.由 Daniel Stainback 创建的 torann/geoip  很好地满足为Laravel 5 项目提供 GeoIP 服务的要求. 这个 ...

  2. Mget is available.

    Table of Contents 1. Introduction 2. Use tmget in gentoo 3. About MTU 1 Introduction MulityGet to sp ...

  3. 虚拟机的安装以及Linux的学习

    安装虚拟机 对虚拟机的认识 其实初中的时候我就听说过虚拟机这个名词,当时的我还小,也不知道虚拟机是个什么东西,那时我傻傻的认为虚拟机只不过是电脑中的一个虚拟的计算机,没有什么实在的作用.后来随着大学课 ...

  4. 使用Github的gh-pages分支展示一个页面

    Github有一个Github pages的功能可以搭建博客或者托管网页,是免费使用的. 首先你的注册Github账号 下载安装git Github官网操作 登录到Github上,创建一个名为 Git ...

  5. 【POJ】2454.Jersey Politics

    题解 有种迷一样的讽刺效果 每个城市有1000头牛,然后你现在知道对于自己政党每个城市的选票,把城市划分成三个州,保证在至少两个州内获胜 找出前2K大的然后random_shuffle,直到前K个加起 ...

  6. 2015 icpc北京赛区 D 最小割

    题目大意:给你一棵技能树,如果要学习一个技能,那么它之前的技能要全部学完,第 i 个点需要ai 能学习 每条边有一个消耗c 如果支付c那么就能去掉这条边, 你还可以kejin 花费di 就能直接学习 ...

  7. MySQL用户授权 和 bin-log日志 详解和实战

    看了上一篇博文的发布时间,到目前已经有三个月没更新博文了.这三个月经历了很多事情,包括工作.生活和感情等等.由于个人发展的原因,这个月准备换工作啦.在这段时间,我会把Web大型项目中所接触到的技术都总 ...

  8. 2018年全国多校算法寒假训练营练习比赛(第一场)J - 闯关的lulu

    链接:https://www.nowcoder.com/acm/contest/67/J来源:牛客网 题目描述 勇者lulu某天进入了一个高度10,000,000层的闯关塔,在塔里每到一层楼,他都会获 ...

  9. Moo University - Financial Aid POJ 2010 优先队列(最大堆)

    题目:http://poj.org/problem?id=2010 题目大意: 奶牛上大学.因为经济问题,每头奶牛都需要一定的补助需求,学校会提供一定的资金用于补助 每头牛都有自己的分数,学校招收的名 ...

  10. [java] java中的初始化顺序

    先看程序: package init_cls; class A{ {System.out.println("i am in the class A!");} static { Sy ...