WEB日誌格式

輕鬆看懂WEB日誌格式

WEB日誌是網站分析和網站數據倉庫的數據最基礎來源,了解其格式和組成將有利於更好地進行數據的收集、處理和分析。

1、日誌格式類型

目前常見的WEB日誌格式主要由兩類,一類是Apache的NCSA日誌格式,另一類是IIS的W3C日誌格式。NCSA格式又分為NCSA普通日誌格式(CLF)和NCSA擴展日誌格式(ECLF)兩類,目前最常用的是NCSA擴展日誌格式(ECLF)及基於自定義類型的Apache日誌格式;而W3C擴展日誌格式(ExLF)具備了更為豐富的輸出信息,但目前的套用並不廣泛,所以這裡主要介紹的是NCSA擴展日誌格式(ECLF)。

2、常見日誌格式的組成

這是一個最常見的基於NCSA擴展日誌格式(ECLF)的Apache日誌樣例:

58.61.164.141 – – [22/Feb/20xx:09:51:46 +0800] “GET /reference-and-source/weblog-format/ HTTP/1.1″ 206 6326 ” ; “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)”

可以看到這個日誌主要由以下幾個部分組成:

訪問主機(remotehost)

顯示主機的IP位址或者已解析的域名。

標識符(Ident)

由identd或直接由瀏覽器返回瀏覽者的EMAIL或其他唯一標示,因為涉及用戶信箱等隱私信息,目前幾乎所有的瀏覽器就取消了這項功能。

授權用戶(authuser)

用於記錄瀏覽者進行身份驗證時提供的名字,如果需要身份驗證或者訪問密碼保護的信息則這項不為空,但目前大多數網站的日誌這項也都是為空的。

日期時間(date)

一般的格式形如[22/Feb/20xx:09:51:46 +0800],即[日期/月份/年份:小時:分鐘:秒鐘 時區],占用的的字元位數也基本固定。

請求(request)

即在網站上通過何種方式獲取了哪些信息,也是日誌中較為重要的一項,主要包括以下三個部分:

請求類型(METHOD)

常見的請求類型主要包括GET/POST/HEAD這三種;

請求資源(RESOURCE)

顯示的是相應資源的URL,可以是某個網頁的地址,也可以是網頁上調用的圖片、動畫、CSS等資源;

協定版本號(PROTOCOL)

顯示協定及版本信息,通常是HTTP/1.1或HTTP/1.0。

狀態碼(status)

用於表示伺服器的回響狀態,通常1xx的狀態碼錶示繼續訊息;2xx表示請求成功;3xx表示請求的重定向;4xx表示客戶端錯誤;5xx表示伺服器錯誤。

傳輸位元組數(bytes)

即該次請求中一共傳輸的位元組數。

來源頁面(referrer)

用於表示瀏覽者在訪問該頁面之前所瀏覽的頁面,只有從上一頁面連結過來的請求才會有該項輸出,如果是新開的頁面則該項為空。上例中來源頁面是google,即用戶從google搜尋的結果中點擊進入。

用戶代理(agent)

用於顯示用戶的詳細信息,包括IP、OS、Bowser等。

3、日誌格式擴展

apache日誌格式可以自定義來配置其輸出格式,常見的基於NCSA擴展日誌格式(ECLF)自定義添加的包括域名(domain)和cookie。其中域名在一個網站擁有二級域名或者子域名時,可以更好地區分日誌;而cookie可以作為用戶的身份標識。