百度統(tǒng)計(jì)提供的JS,實(shí)質(zhì)上是往頁(yè)面中引入#/h.js的這段代碼,該代碼的內(nèi)容會(huì)根據(jù)后面的參數(shù)有所不同,h.js?后面的參數(shù)就是你在百度統(tǒng)計(jì)里的id。獲取該h.js代碼的同時(shí),百度統(tǒng)計(jì)會(huì)往你的瀏覽器寫(xiě)入一個(gè)名字為“HMACCOUNT”的cookie,該cookie的過(guò)期時(shí)間為2038年,所以只要你沒(méi)有清空瀏覽器cookie,基本就永不過(guò)期。h.js被下載后,便執(zhí)行其腳本獲取一些瀏覽器相關(guān)信息和訪問(wèn)來(lái)源,獲取的信息包括屏幕尺寸、顏色深度、flash版本、用戶語(yǔ)言等。
從js代碼中可以得到,所有參數(shù)包括這些:”cc,cf,ci,ck,cl,cm,cp,cw,ds,ep,et,fl,ja,ln,lo,lt,nv,rnd,sb,se,si,st,su,sw,sse,v”。這些參數(shù)的意義大致如下:
cc: 不知道,一般為1
cf:url參數(shù)hmsr的值
ci:url參數(shù)hmci的值
ck:是否支持cookie 1:0
cl:顏色深度 如 “32-bit”
cm:url參數(shù)hmmd的值
cp:url參數(shù)hmpl的值
cw:url參數(shù)hmkw的值
ds:屏幕尺寸,如 ’1024×768′
ep:初始值為’0′,時(shí)間變量,反映頁(yè)面停留時(shí)間,格式大概是:現(xiàn)在時(shí)間-載入時(shí)間+“,”+另一個(gè)很小的時(shí)間值
et:初始值為’0′,如果ep時(shí)間變量不是0的話,它會(huì)變成其他
fl:flash版本
ja:java支持 1:0
ln:語(yǔ)言 zh-cn
lo: 不知道,一般為0
lt:日期 time.time(),如“1327847756”,在首次請(qǐng)求沒(méi)有
nv: 不知道,一般為1或者0
rnd:十位隨機(jī)數(shù)字
sb:如果是360se瀏覽器該值等于‘17’
se: 和搜索引擎相關(guān)
si:統(tǒng)計(jì)代碼id
st:
su:上一頁(yè)document.referrer
sw: 不知道,估計(jì)和搜索引擎有關(guān),一般為空
sse:不知道,估計(jì)和搜索引擎有關(guān),一般為空
v:統(tǒng)計(jì)代碼的版本 ,目前該值為“1.0.17”
當(dāng)這些參數(shù)都設(shè)置完畢了(有些參數(shù)并沒(méi)有賦值),篩選出已經(jīng)賦值了的參數(shù),并作為#/hm.gif的參數(shù)拼湊出一個(gè) url,如:http://upload.chinaz.com//?cc=1&ck=1&cl=32-bit& ds=1366×768&ep=0&et=0&fl=11.0&ja=1&ln=zh-cn 。然后請(qǐng)求該圖片。百度統(tǒng)計(jì)服務(wù)端,通過(guò)接收到這個(gè)請(qǐng)求,并從這個(gè)圖片的網(wǎng)址附帶的參數(shù)獲取相關(guān)信息,記錄訪客訪問(wèn)記錄;當(dāng)頁(yè)面被用戶關(guān)閉的時(shí)候,同樣會(huì)觸發(fā)一次請(qǐng)求hm.gif的過(guò)程,但這個(gè)過(guò)程不是所有瀏覽器和所有關(guān)閉動(dòng)作都支持。