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