WEB日志是网站的WEB服务处理程序,根据一定的规范生成的ASCII文本。它主要记录了网站访问记录数据内容,是网站分析和网站数据仓库的数据基础来源,而网站分析和数据分析也将对SEO产生一定的影响,所以了解WEB日志的格式和组成将有利于我们更好地进行网站数据的收集、处理和分析,从而更好的进行网站优化。
一、WEB日志格式分类
目前常见的WEB日志格式主要由两类,一类是Apache的NCSA日志格式,另一类是IIS的W3C日志格式。NCSA格式又分为NCSA普通日志格式(CLF)和NCSA扩展日志格式(ECLF)两类,目前最常用的是NCSA扩展日志格式(ECLF)及基于自定义类型的Apache日志格式;而W3C扩展日志格式(ExLF)具备了更为丰富的输出信息,主要是微软IIS(Internet Information Services)中应用。
二、NCSA扩展WEB日志格式(ECLF)
下面是一个最常见的基于NCSA扩展WEB日志格式(ECLF)的Apache日志样例:
218.161.64.101 – – [22/Aug/2011:09:51:46 +0800] “GET /reference-and-source/weblog-format/ HTTP/1.1″ 202 6326 ”http :/ /www .google.cn/search?q=friend” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)”
这个日志可以解读为:来自”http://www.google.cn/search?q=friend”的访客,使用IE6.0浏览器,应用HTTP/1.1协议,在22/Aug/2011:09:51:46,访问(GET)了218.161.64.101主机的 /reference-and-source/weblog-format/,访问成功,得到6326字节数据。
可以看到这个日志主要由以下几个部分组成:
访问主机(remotehost):显示主机的IP地址或者已解析的域名。
标识符(Ident):由identd或直接由浏览器返回浏览者的EMAIL或其他唯一标示,因为涉及用户邮箱等隐私信息,目前几乎所有的浏览器就取消了这项功能。
授权用户(authuser):用于记录浏览者进行身份验证时提供的名字,如果需要身份验证或者访问密码保护的信息则这项不为空,但目前大多数网站的日志这项也都是为空的。
日期时间(date):一般的格式形如[22/Feb/2010: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等。
三、W3C扩展WEB日志
下面是一段常见的IIS生产的W3C扩展WEB日志
2011-09-01 16:02:22 GET /Enterprise/detail.asp 70.25.29.53 http:/ /www .example.com/searchout.asp 202 17735 369 4656
这个日志可以解读为:IP是70.25.29.53,来自”http://www.example.com/searchout.asp”的访客,在2011-09-01 16:02:22,访问(GET)了主机的/Enterprise/detail.asp,访问成功,得到17735字节数据。
日期:date 动作发生时的日期。
时间:time 动作发生时的时间(默认为UTC标准)。
客户端IP地址:c-ip 访问服务器的客户端IP地址。
用户名:cs-username 通过身份验证的访问服务器的用户名。不包括匿名用户(用‘-’表示)。
服务名:s-sitename 客户所访问的Internet服务名以及实例号。
服务器名:s-computername 产生日志条目的服务器的名字。
服务器IP 地址:s-ip 产生日志条目的服务器的IP地址。
服务器端口:s-port 服务端提供服务的传输层端口。
方法:cs-method 客户端执行的行为(主要是GET与POST行为)。
URI Stem:cs-uri-stem 被访问的资源,如Default.asp等。
URI Query:cs-uri-query 客户端提交的参数(包括GET与POST行为)。
协议状态:sc-status 用HTTP或者FTP术语所描述的、行为执行后的返回状态。
Win32状态:sc-win32-status 用Microsoft Windows的术语所描述的动作状态。
发送字节数:sc-bytes 服务端发送给客户端的字节数。
接受字节数:cs-bytes 服务端从客户端接收到的字节数。
花费时间:time-taken 执行此次行为所消耗的时间,以毫秒为单位。
协议版本:cs-version 客户端所用的协议(HTTP、FTP)版本。对HTTP协议来说是HTTP 1.0或者HTTP 1.1。
主机:cs-host 客户端的HTTP报头(host header)信息。
用户代理:cs(User-Agent) 客户端所用的浏览器版本信息。
Cookie:cs(Cookie) 发送或者接受到的cookie内容。
Referrer:cs(Referer) 用户浏览的前一个网址,当前网址是从该网址链接过来的。
协议底层状态:sc-substatus 协议底层状态的一些错误信息。
WEB日志记录了网站访客的详细情况,我们可以通过日志分析工具来分析网民对网站的浏览情况,但在实际应用中,我们更多的是采用一些第三方的网站统计工具来监控访客对网站的访问情况。