輕松看懂WEB日志格式
WEB日志是網(wǎng)站分析和網(wǎng)站數據倉庫的數據最基礎來(lái)源,了解其格式和組成將有利于更好地進(jìn)行數據的收集、處理和分析。
1、日志格式類(lèi)型
目前常見(jiàn)的WEB日志格式主要由兩類(lèi),一類(lèi)是Apache的NCSA日志格式,另一類(lèi)是IIS的W3C日志格式。NCSA格式又分為NCSA普通日志格式(CLF)和NCSA擴展日志格式(ECLF)兩類(lèi),目前最常用的是NCSA擴展日志格式(ECLF)及基于自定義類(lèi)型的Apache日志格式;而W3C擴展日志格式(ExLF)具備了更為豐富的輸出信息,但目前的應用并不廣泛,所以這里主要介紹的是NCSA擴展日志格式(ECLF)。
2、常見(jiàn)日志格式的組成
這是一個(gè)最常見(jiàn)的基于NCSA擴展日志格式(ECLF)的Apache日志樣例:
58.61.164.141 – – [22/Feb/2010:09:51:46 +0800] “GET /reference-and-source/weblog-format/ HTTP/1.1″ 206 6326 ” http://www.google.cn/search?q=webdataanalysis” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)”
可以看到這個(gè)日志主要由以下幾個(gè)部分組成:
訪(fǎng)問(wèn)主機(remotehost)
顯示主機的IP地址或者已解析的域名。
標識符(Ident)
由identd或直接由瀏覽器返回瀏覽者的EMAIL或其他唯一標示,因為涉及用戶(hù)郵箱等隱私信息,目前幾乎所有的瀏覽器就取消了這項功能。
授權用戶(hù)(authuser)
用于記錄瀏覽者進(jìn)行身份驗證時(shí)提供的名字,如果需要身份驗證或者訪(fǎng)問(wèn)密碼保護的信息則這項不為空,但目前大多數網(wǎng)站的日志這項也都是為空的。
日期時(shí)間(date)
一般的格式形如[22/Feb/2010:09:51:46 +0800],即[日期/月份/年份:小時(shí):分鐘:秒鐘 時(shí)區],占用的的字符位數也基本固定。
請求(request)
即在網(wǎng)站上通過(guò)何種方式獲取了哪些信息,也是日志中較為重要的一項,主要包括以下三個(gè)部分:
請求類(lèi)型(METHOD)
常見(jiàn)的請求類(lèi)型主要包括GET/POST/HEAD這三種;
請求資源(RESOURCE)
顯示的是相應資源的URL,可以是某個(gè)網(wǎng)頁(yè)的地址,也可以是網(wǎng)頁(yè)上調用的圖片、動(dòng)畫(huà)、CSS等資源;
協(xié)議版本號(PROTOCOL)
顯示協(xié)議及版本信息,通常是HTTP/1.1或HTTP/1.0。
狀態(tài)碼(status)
用于表示服務(wù)器的響應狀態(tài),通常1xx的狀態(tài)碼表示繼續消息;2xx表示請求成功;3xx表示請求的重定向;4xx表示客戶(hù)端錯誤;5xx表示服務(wù)器錯誤。
傳輸字節數(bytes)
即該次請求中一共傳輸的字節數。
來(lái)源頁(yè)面(referrer)
用于表示瀏覽者在訪(fǎng)問(wèn)該頁(yè)面之前所瀏覽的頁(yè)面,只有從上一頁(yè)面鏈接過(guò)來(lái)的請求才會(huì )有該項輸出,如果是新開(kāi)的頁(yè)面則該項為空。上例中來(lái)源頁(yè)面是google,即用戶(hù)從google搜索的結果中點(diǎn)擊進(jìn)入。
用戶(hù)代理(agent)
用于顯示用戶(hù)的詳細信息,包括IP、OS、Bowser等。
3、日志格式擴展
apache日志格式可以自定義來(lái)配置其輸出格式,常見(jiàn)的基于NCSA擴展日志格式(ECLF)自定義添加的包括域名(domain)和cookie。其中域名在一個(gè)網(wǎng)站擁有二級域名或者子域名時(shí),可以更好地區分日志;而cookie可以作為用戶(hù)的身份標識。