zoukankan      html  css  js  c++  java
  • CNZZ站点流量统计原理简析

    这是我的域名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.


    没有接着发请求是由于:返回的第二个js文件里的
    "0" === m && k.callRequest([l + "//cnzz.mmstat.com/9.gif?

    abc=1"])
    能够发现反复訪问的时候,返回的m = "1",即不会运行这个请求。
    ------------------------------------------------------------------
    //注:点击【站长统计】就可以看到统计结果,只是基本为0。

  • 相关阅读:
    thinkphp5 tp5 命名空间 报错 Namespace declaration statement has to be the very first statement in the script
    开启 php 错误 提示 php-fpm 重启 nginx 500错误 解决办法 wdlinux lnmp 一键包 php脚本无法解析执行
    js 设置 cookie 定时 弹出层 提示层 下次访问 不再显示 弹窗 getCookie setCookie setTimeout
    php 二维数组 转字符串 implode 方便 mysql in 查询
    nginx 重启 ps -ef|grep nginx kill -HUP 主进程号
    jquery bootstrap help-block input 表单 提示 帮助 信息
    jquery 倒计时 60秒 短信 验证码 js ajax 获取
    jQuery如何获取同一个类标签的所有的值 遍历
    linux下C语言文件操作相关函数
    gcc,gdb用法
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5379652.html
Copyright © 2011-2022 走看看