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。

  • 相关阅读:
    团队作业四
    团队作业五
    团队作业三
    团队作业二
    起名真麻烦
    网络桌面前景与范围文档
    PSP软件需求分析文档
    psp软件需求分析
    psp个人系统开发需求分析
    天猫网站的项目前景与文档
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5379652.html
Copyright © 2011-2022 走看看