session和cookie的辨析

  session和cookie是网站浏览中较为常见的两个概念,也是比较难以辨析的两个概念,但它们在点击流及基于用户浏览行为的网站分析中却相当关键。基于网上一些文章和资料的参阅,及作者个人的应用体会,对这两个概念做一个简单的阐述和辨析,希望能与大家共同探讨下。

  session和cookie的最大区别在于session是保存在服务端的内存里面,而cookie保存于浏览器或客户端文件里面;session是基于访问的进程,记录了一个访问的开始到结束,当浏览器或进程关闭之后,session也就“消失”了,而cookie更多地被用于标识用户,它可以是长久的,用于用户跟踪和识别唯一用户(Unique Visitor)。

关于session

  session被用于表示一个持续的连接状态,在网站访问中一般指代客户端浏览器的进程从开启到结束的过程。session其实就是网站分析的访问(visits)度量,表示一个访问的过程。

session

  session的常见实现形式是会话cookie(session cookie),即未设置过期时间的cookie,这个cookie的默认生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。实现机制是当用户发起一个请求的时候,服务器会检查该请求中是否包含sessionid,如果未包含,则系统会创造一个名为JSESSIONID的输出cookie返回给浏览器(只放入内存,并不存在硬盘中),并将其以HashTable的形式写到服务器的内存里面;当已经包含sessionid是,服务端会检查找到与该session相匹配的信息,如果存在则直接使用该sessionid,若不存在则重新生成新的session。这里需要注意的是session始终是有服务端创建的,并非浏览器自己生成的。

  但是浏览器的cookie被禁止后session就需要用get方法的URL重写的机制或使用POST方法提交隐藏表单的形式来实现。

  这里有一个很关键性的注意点,即session失效时间的设置,这里要分两方面来看:浏览器端和服务端。对于浏览器端而言,session与访问进程直接相关,当浏览器被关闭时,session也随之消失;而服务器端的session失效时间一般是人为设置的,目的是能定期地释放内存空间,减小服务器压力,一般的设置为当会话处于非活动状态达20或30分钟时清除该session,所以浏览器端和服务端的session并非同时消失的,session的中断也并不一定意味着用户一定离开了该网站。目前Google Analytics和Omniture都定义当间隔30分钟没有动作时,算作一次访问结束,所以上图中session的最后一步不只是离开,也有可能是静止、休眠或者发呆的状态。

  还有一点需要注意,就是现在的浏览器好像趋向于多进程的session共享,即通过多个标签或页面打开多个进程访问同一网站时共享一个session cookie,只有当浏览器被关闭时才会被清除,也就是你有可能在标签中关闭了该网站,但只要浏览器未被关闭并且在服务器端的session未失效前重新开启该网站,那么就还是使用原session进行浏览;而某些浏览器在打开多页面时也可能建立独立的session,IE8、Chrome默认都是共享session的,在IE8中可以通过菜单栏中的文件->新建会话来建立独立session的浏览页面。

关于cookie 

cookie

  cookie 是一小段文本信息,伴随着用户请求和页面在Web服务器和浏览器之间传递。用户每次访问站点时,Web应用程序都可以读取cookie包含的信息。

  session的实现机制里面已经介绍了常见的方法是使用会话cookie(session cookie)的方式,而平常所说的cookie主要指的是另一类cookie——持久cookie(persistent cookies)。持久cookie是指存放于客户端硬盘中的cookie信息(设置了一定的有效期限),当用户访问某网站时,浏览器就会在本地硬盘上查找与该网站相关联的cookie。如果该cookie 存在,浏览器就将它与页面请求一起通过HTTP报头信息发送到您的站点,然后在系统会比对cookie中各属性和值是否与存放在服务器端的信息一致,并根据比对结果确定用户为“初访者”或者“老客户”。

  持久cookie一般会保存用户的用户ID,该信息在用户注册或第一次登录的时候由服务器生成包含域名及相关信息的cookie发送并存放到客户端的硬盘文件上,并设置cookie的过期时间,以便于实现用户的自动登录和网站内容自定义。

  Apache自带的mod_usertrack模块可以在用户首次来到当前网站的时候给用户种下一个唯一的cookie(较长时间过期),这个cookie是用户首次来当前网站的IP地址加上一个随机字符串组成的。同时在自定义WEB日志中在最后增加%{cookie}n字段可以实现cookie在apache日志中的输出,用于数据统计与用户跟踪。

你找到答案了吗?

unlock  博客自发布第一篇文章以来,到今天刚好有一个月时间了,所以这里对开篇中提出的几个问题做一个解答,如果你还没有阅读过该文章,建议先阅读开篇

  也许很多朋友已经找到了答案,也有可能你们的解答与我下面的描述会有差异,当然只要都能解释问题,符合问题的条件,一切答案都是可以被接受的,问题的答案可能并非唯一的。其实这些问题只是想对网站数据分析做一些简单的解释,阐述作者个人对网站数据分析的一些认识,同时让这个过程更具趣味性。

1、趋势分析与预测

  从表面看,寻找数字规律中的这串数字可能毫无规律,但只要把它们放到图表上,你就会惊奇地发现它们呈一条完美的曲线排列了起来:

digits-trend

  这是在excel里面以1-20的序列为横坐标,以那串20个数字为纵坐标一一对应画出的散点图,可以看到这是一条比较规范的类S型曲线,也是最典型的一类成长曲线,也许你的网站的用户访问量或者销售额正是以类似这种趋势增长的。发现这种规律之后,就可以用数据统计的方法对其进行分析,对于这类有规律线性曲线,最常用的方法就是回归分析:

  首先可以根据S曲线确定其基本表达式为:

            S-function1S-function2

  表达式因为包含三个未知参数,无法直接通过回归分析求得,所以首先需要根据S曲线的特征和已知的数字观察到曲线无限接近于100,可以先暂定α的值为0.01,则该表达式变为:

S-function-converted

  可以将其转化为线性表达式:

linear-function

            其中y*=ln(1/y-0.01); x*=x; α*=lnβ; β*=-θ

  然后就可以用标准一元线性回归的方法进行拟合和分析,计算得到拟合度R2=0.998,显著性系数接近于0,拟合度非常高,结果可以被接受。算出α和β的值约为0.7381和-0.5066,代入原方程得到:

S-function-result

  再根据改方程当x=9是代入,得y约为31.35,预测得到那个缺失的数字约为31。

  当然这可能只是其中一种分析和预测的方法,如果可以找到另外的拟合度足够高的表达式,那么用该表达式预测得到的数字一样有效,答案并非唯一的。这个题目是作者自己编的,自然计算得到的拟合度十分理想,在现实中可能并没有这么完美的曲线存在,但只要用类似的方法去思考和分析,一样也能找到需要的答案。

  这里已经完成了对该题的解释,想顺带说一下成长曲线。大家都知道成长曲线存在着无法达到的极值,获取对于生物界来说该曲线确实是无法突破的,那么对已企业或者网站来说类似的流量增长曲线或者利润增长曲线是否可以被突破呢?答案是肯定的。任何失误的发展都会遇到瓶颈,网站也是这样,关键是如何发现和认识自身的瓶颈,只有真正地了解自身的问题,才能通过不断地优化、创新和市场拓展突破瓶颈,当瓶颈一旦被突破,原先无法逾越的极值点将变成新成长曲线的起始点继续向上攀升,而数据分析正是网站发现瓶颈的最有力武器。

2、识别用户

  关于那道逻辑题,也许很多朋友已经发现这个就是根据爱因斯坦的那题经典的逻辑题改编而来的,答案如下:

次序  A B D E C
穿着 
城市  广州 青岛 北京 上海 杭州
职业  律师 工程师 教授 医生 作家
饮料 牛奶 咖啡 啤酒

  其实对于网站分析来说,识别用户是极其重要的一个过程,网站分析中有一个重要的指标——Unique Visitor(UV),用以标识唯一的访问用户,而如何从网站的底层日志中识别每次访问是否是同一用户一直是网站分析中的一个难点,因为某些时候用户访问是未登录的,或是匿名的,甚至连cookie都是被禁用的。而对于网站分析来说,识别唯一用户又是十分有用的,它直接影响到针对每个用户的网站行为分析、用户细分及定向营销等多个方面,所以之后会有专门的对如何更好地识别网站用户的相关介绍。

3、学会细分

  细分是网站分析中一个十分重要的技巧和方法,无论是用户、产品、页面等都可以通过细分更好地发现其特征。其实图形题中的两个问题正是细分中的两种基本的方法:一种是已知类别,将类别未明的事物归类;另一种是已知存在这么多的事物,将这些食物分成若干类,我对这两个问题的解答如下(当然这个答案并非唯一,只要归类有所依据的答案都是可以被接受的):

  1)先观察2、4、8三个图形所拥有的相同特征:4条边、左右对称、上下对称、重心在同一水平线上、序号都是偶数,根据这些特征去寻找共同特征最多的图形,可以看到6号的圆形是最为接近的:左右对称、上下对称、重心在同一水平线上、序号都是偶数,所以我的答案是选择6号的圆形;

  2)与第一题类似,从所有的图形中选择拥有最多共同特征的归为一类,并使各类别间的特征差异最大,我是从这几个角度进行区分的:边数、轴对称、中心对称、重心分布、序号,分成四类如下:

    A类:2、4、8(4条边、左右对称、上下对称、重心都在水平中间线、序号都为偶数);

    B类:1、3、5(左右对称、重心都在水平中间线以下、序号都是奇数);

    C类:6(中心对称、任意轴对称、重心在水平中间线);

    D类:7(4条边、中心对称、重心在水平中间线);

  其实这两个问题也是数据挖掘中两个方法的简单体现:

分类

  分类就是把一些新的事物映射到给定类别的中的某一个类别,用于描述事物或预测。常见的分类方法有:决策树、KNN法(K-Nearest Neighbor)、SVM法(Support Vector Machine)、VSM法(Vector Space Model)、神经网络等。

聚类

  聚类就是将数据对象分组成多个类或者簇,划分的原则是在同一个簇中的对象之间具有较高的相似度,而不同簇中的对象差别较大。聚类算法可以分为划分方法、层次方法、基于密度方法、基于网格方法和基于模型方法。

4、互联网发展趋势

Moshe

  对于最后一个问题,其实大家可以各抒己见,这里也只是作者的个人看法,也许阐述和对比的网站不一定恰当,这里只是想说明作为一个网站分析师,必须时刻关注互联网的发展趋势,而Alexa上面排在TOP前几位的网站正是互联网不断发展和进步的指向标。

  正如前几天有人预测2010年facebook的流量将超越google,成为全球最受欢迎的网站,结果我上Alexa一比较,果然facebook在数据上除了用户量不及google外,几乎所有数据都持平或超越了google,其中页面访问量目前两个网站已不相上下,而网站访问时间facebook甚至已经达到了google的3倍(当然这跟网站本身的服务性质有关);但确实不得不佩服facebook的实力,流量一路飙升,过关斩将,到现在能够觊觎互联网老大的宝座,但是要真正坐上去还得在用户量上超越google。其实很多人看好facebook也不无道理,因为毕竟facebook是信息的创造者,而google只是信息的整合者,创造者掌握着信息的信息竞争力。

网站数据分析的基本流程

  网站数据分析没有规范的分析流程容易使最后的结果逻辑混乱或者偏离原来的主题,所以一套规范的流程能够使网站分析更加清晰和有效。

  网站分析其实就是一个发现问题、分析问题的解决问题的过程。问题的发现可以来源于多方面:网站运营中遇到的问题、用户的反馈和抱怨、日常统计数据的表现异常等;分析问题的过程就是根据遇到的问题运用合理的方法对其进行解释,这也是本站重点探讨的方向;而最后的解决问题则是最为关键的一点,也是目前最被忽视的一点,目前的网站分析工作往往在找到问题后无法落实到寻求最优的解决方案并执行和解决问题这一点上,即使采取了相应的措施也无法进行持续的反馈,并从根本真正地解决问题,很多只是针对一时的举措,而解决问题的过程恰好是最能体现公司执行力的时候,如果没有最终解决问题或者实现优化,那么网站分析就没有丝毫的价值。

  随着互联网的不断发展成熟,网站的发展趋势将更加规范化、精细化,更加注重用户体验,今后的网站建设很重要的一点就是网站的质量管理,所以这里就借用质量管理里面的六西格玛中的DMAIC循环来梳理一下网站数据分析的流程,DMAIC是PDCA质量环的改进,这里将其核心设置为“用户体验”,因为不同网站会有不同的目标,而提高“用户体验”可以说是所有网站的共同目标。

DMAIC

  正如上图所示,基于DMAIC循环,网站数据分析的流程也可以用这5步来实现:

定义(Define)

  原意是识别和确定用户需求,定义任务的目标和意义。对于网站数据分析来说,可以表述为确定这次分析所针对的问题是什么,分析最终需要达到何种目的,对网站有何实际的意义,同时需要确定分析的范围,及规划本次分析工作的进度和质量控制。

测量(Measure)

  原意是收集数据,量化分析。对于网站数据分析来说,同样也是一个收集和获取数据的过程,尽量获得完整、真实、准确的数据,做好数据的预处理工作,便于分析工作的开展。

分析(Analyze)

  原意是使用数据统计和分析的方法找到问题的本质。分析不只是对数据的简单统计描述,其结果不应该是一张报表和趋势图这么简单,分析的本质应该是从表面的数据中找到问题的本质,最后需要第一步针对的问题进行归纳和总结。同时需要注意的是分析要紧跟“定义”,不能偏离问题的范围和本质。

改进(Improve)

  原意是找到最优的解决方案,是问题得到解决或者使问题的负面影响降到最低。个人认为这一步是最为关键的一步,也是目前很多网站分析工作中较为忽视的一步,很多网站分析只是呈现结果,缺少解决问题的方案,这就相当于找到了管道的漏水点却任由其漏水而不作处理,任何不付诸实践的分析结果都是废纸,毫无意义。同时这一步也是最考验网站执行力的一个步骤。

控制(Control)

  原意是监控改进的结果,使相同问题不再重现。这一步无疑是目前最被忽略的一步,很多改进方案实施之后根本不会再去关注反馈情况,而有些改进方案治标不治本,就像网站的访问量无法通过一两次的推广活动通过本质上的提升,关键还在于网站本身的质量,推广活动可能让数据在短期内获得提升,但想要保持长期地增长还是需要不断地优化和改进。所以“控制”要的是持续的反馈和监控,并不断寻找能从最根本上解决问题的最优方案。

  所以,网站建设是一个循序渐进的过程,很多网站数据分析也是长期的,不断监视、跟踪并改进,而DMAIC循环也正体现了这个概念,通过不断地网站分析来提高网站质量,提高用户体验。

数据仓库的价值

value-of-data-warehouse  相信大家都了解数据仓库的4个基本特征:面向主题的、集成的、相对稳定的、记录历史的,而数据仓库的价值正是基于这4个特征体现的:

1、高效的数据组织形式

  面向主题的特性决定了数据仓库拥有业务数据库所无法拥有的高效的数据组织形式,更加完整的数据体系,清晰的数据分类和分层机制。因为所有数据在进入数据仓库之前都经过清洗和过滤,使原始数据不再杂乱无章,基于优化查询的组织形式,有效提高数据获取、统计和分析的效率。

2、时间价值

  数据仓库的构建将大大缩短获取信息的时间,数据仓库作为数据的集合,所有的信息都可以从数据仓库直接获取,数据仓库的最大优势在于一旦底层从各类数据源到数据仓库的ETL流程构建成型,那么每天就会有来自各方面的信息通过自动任务调度的形式流入数据仓库,从而使一切基于这些底层信息的数据获取的效率达到迅速提升。

  从应用来看,使用数据仓库可以大大提高数据的查询效率,尤其对于海量数据的关联查询和复杂查询,所以数据仓库有利于实现复杂的统计需求,提高数据统计的效率。

3、集成价值

  数据仓库是所有数据的集合,包括日志信息、数据库数据、文本数据、外部数据等都集成在数据仓库中,对于应用来说,实现各种不同数据的关联并使多维分析更加方便,为从多角度多层次地数据分析和决策制定提供的可能。

4、历史数据

  记历史是数据仓库的特性之一,数据仓库能够还原历史时间点上的产品状态、用户状态、用户行为等,以便于能更好的回溯历史,分析历史,跟踪用户的历史行为,更好地比较历史和总结历史,同时根据历史预测未来。

数据的标准化

  数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。

  其中最典型的就是数据的归一化处理,即将数据统一映射到[0,1]区间上,常见的数据归一化的方法有:

min-max标准化(Min-max normalization)

  也叫离差标准化,是对原始数据的线性变换,使结果落到[0,1]区间,转换函数如下:

  其中max为样本数据的最大值,min为样本数据的最小值。这种方法有一个缺陷就是当有新数据加入时,可能导致max和min的变化,需要重新定义。

log函数转换

  通过以10为底的log函数转换的方法同样可以实现归一下,具体方法如下:

  看了下网上很多介绍都是x*=log10(x),其实是有问题的,这个结果并非一定落到[0,1]区间上,应该还要除以log10(max),max为样本数据最大值,并且所有的数据都要大于等于1。

atan函数转换

  用反正切函数也可以实现数据的归一化:

  使用这个方法需要注意的是如果想映射的区间为[0,1],则数据都应该大于等于0,小于0的数据将被映射到[-1,0]区间上。

  而并非所有数据标准化的结果都映射到[0,1]区间上,其中最常见的标准化方法就是Z标准化,也是SPSS中最为常用的标准化方法:

z-score 标准化(zero-mean normalization)

  也叫标准差标准化,经过处理的数据符合标准正态分布,即均值为0,标准差为1,其转化函数为:

  其中μ为所有样本数据的均值,σ为所有样本数据的标准差。

电子商务网站RFM分析

  根据美国数据库营销研究所Arthur Hughes的研究,客户数据库中有三个神奇的要素,这三个要素构成了数据分析最好的指标: 

  • 最近一次消费(Recency)
  • 消费频率(Frequency)
  • 消费金额(Monetary)

  RFM分析原多用于传统营销、零售业等领域,适用于拥有多种消费品或快速消费品的行业,只要任何有数据记录的消费都可以被用于分析。那么对于电子商务网站来说,网站数据库中记录的详细的交易信息,同样可以运用RFM分析模型进行数据分析,尤其对于那些已经建立起客户关系管理(CRM)系统的网站来说,其分析的结果将更具意义。

基本概念解释

  RFM模型是衡量客户价值和客户创利能力的重要工具和手段。RFM分析模型主要由三个指标组成,下面对这三个指标的定义和作用做下简单解释:

最近一次消费(Recency)

  最近一次消费意指用户上一次购买的时间,理论上,上一次消费时间越近的顾客应该是比较好的顾客,对提供即时的商品或是服务也最有可能会有反应。因为最近一次消费指标定义的是一个时间段,并且与当前时间相关,因此是一直在变动的。最近一次消费对营销来说是一个重要指标,涉及吸引客户,保持客户,并赢得客户的忠诚度。

消费频率(Frequency)

  消费频率是顾客在一定时间段内的消费次数。最常购买的消费者,忠诚度也就最高,增加顾客购买的次数意味着从竞争对手处偷取市场占有率,由别人的手中赚取营业额。

  根据这个指标,我们又把客户分成五等分,这个五等分分析相当于是一个“忠诚度的阶梯”(loyalty ladder),其诀窍在于让消费者一直顺着阶梯往上爬,把销售想像成是要将两次购买的顾客往上推成三次购买的顾客,把一次购买者变成两次的。

消费金额(Monetary)

  消费金额是对电子商务网站产能的最直接的衡量指标,也可以验证“帕雷托法则”(Pareto’s Law)——公司80%的收入来自20%的顾客。

数据获取与分析

  在从数据库中提取相关数据之前,首先需要确定数据的时间跨度,根据网站销售的物品的差异,确定合适的时间跨度。如果经营的是快速消费品,如日用品,可以确定时间跨度为一个季度或者一个月;如果销售的产品更替的时间相对久些,如电子产品,可以确定时间跨度为一年、半年或者一个季度。在确定时间跨度之后就可以提取相应时间区间内的数据,其中:

  最近一次消费(Recency),取出来的数据是一个时间点,需要由 当前时间点-最近一次消费时间点 来作为该度量的值,注意单位的选择和统一,无论以小时、天为单位;

  消费频率(Frequency),这个指标可以直接在数据库中COUNT用户的消费次数得到;

  消费金额(Monetary),可以将每位客户的所有消费的金额相加(SUM)求得。

  获取三个指标的数据以后,需要计算每个指标数据的均值,分别以AVG(R)、AVG(F)、AVG(M)来表示,最后通过将每位客户的三个指标与均值进行比较,可以将客户细分为8类:

Recency  Frequency Monetary 客户类型
重要价值客户
重要发展客户
重要保持客户
重要挽留客户
一般价值客户
一般发展客户
一般保持客户
一般挽留客户

——“↑”表示大于均值,“↓”表示小于均值,多谢nancy的提醒,表中Recency的箭头应该是倒过来的,下面的图中也是

结果的展示

  RFM模型包括三个指标,无法用平面坐标图来展示,所以这里使用三维坐标系进行展示,一种X轴表示Recency,Y轴表示Frequency,Z轴表示Monetary,坐标系的8个象限分别表示8类用户,根据上表中的分类,可以用如下图形进行描述:

RFM-model

  RFM分析也存在着一定的缺陷,它只能分析有交易行为的用户,而对访问过网站但未消费的用户由于指标的限制无法进行分析,这样就无法发现潜在的客户。所以在分析电子商务网站的用户时,由于网站数据的丰富性——不仅拥有交易数据,而且可以收集到用户的浏览访问数据,可以扩展到更广阔的角度去观察用户,这方面的定量分析会在之后的网站用户分析中进行详细叙述。

以上部分的概念来源于MBA智库百科

关于网络机器人

google-spider   网络机器人也叫网络蜘蛛(Web Spider),是一个很形象的名字。把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。网络机器人通过网页的链接地址来寻找网页,通常由网站首页开始,根据链接依次抓取网页。

  并非所有的网络机器人都是搜索引擎,同样会有翻译服务、订阅服务、阅读器等,甚至还有许多恶意机器人也会市场来访问你的网站。所以对网站中网络机器人相关的数据统计和分析也是部分必要的。

统计机器人信息的作用

  • 分析页面是否被搜索引擎编入
  • 统计搜索引擎搜索频率
  • 找出哪些页面被搜索引擎忽略了
  • 识别恶意机器人

恶意机器人行为特征

  恶意机器人对网站的负面影响有时是十分显著的,所以我们需要通过数据分析来找出它们,并且屏蔽他们的访问或抓取行为。

  通常恶意机器人通过抓取网站信息来获得用户的隐私信息,或者获取网站中受保护的或私有的信息,通过将出售这些用户信息获利;或者恶意机器人通过不断地爬取给网站造成不必要的负担,降低网站的访问性能,从而影响其他正常用户的访问。恶意机器人的行为特征主要有如下几种:

  1. 忽略robot.txt的说明;
  2. 访问robot.txt中被禁止抓取的页面;
  3. 快速地索引整个网站从而降低真正用户的性能;
  4. 通过动态页面紧跟你不想索引的链接。

识别恶意机器人的方法

  既然恶意机器人的行为对网站有害,那么我们如何有效地去识别哪些是恶意机器人呢?下面有三种常用的方法:

1) 通过Agent字段,建立网络机器人白名单;

  因为一般像google、baidu等搜索引擎的机器人都会在Agent信息中标明自己的身份,我们可以将这些机器人建立白名单,允许其对网站的访问和抓取。

2) 检查发出请求的IP和域名;

  与Agent识别类似,通过IP或者域名进行识别也是比较有效的一个方法,因为一些常见的机器人的IP地址区间及其域名都是相对固定的,网上也有相关的列表提供参考。

3) 统计所有查看过robot.txt的会话及用户。

  一般只有机器人或者某些想窥视信息的人才会访问robots.txt,通过统计网站的robots.txt被那些用户访问了,可以进一步确定是否有恶意机器人的存在。

WEB日志格式

 apache-log  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/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)”

  可以看到这个日志主要由以下几个部分组成:

访问主机(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等。

3、日志格式扩展

  apache日志格式可以自定义来配置其输出格式,常见的基于NCSA扩展日志格式(ECLF)自定义添加的包括域名(domain)cookie。其中域名在一个网站拥有二级域名或者子域名时,可以更好地区分日志;而cookie可以作为用户的身份标识。其他具体的自定义信息详见:Custom Log Formats

开篇

set-sail   欢迎来到网站分析的世界,这是一个充满趣味的世界,在这里,你可以找到与网站数据仓库和数据分析相关的知识,有意思的分析方法和分析结果,希望这里的一切能让你的网站变得更加优秀。
  这是博客的第一篇文章,这里有几个有意思的问题,大家可以尝试着去找到答案(试图通过搜索引擎去寻找答案可能会让你失望,下面的问题都是作者的原创或改编):

1、寻找数字规律

  这里有20个数字,其中第9个数字缺失了,试着寻找到它们的排列规律,并预测出第9个数字最有可能是什么?

1,1,2,4,6,9,14,21,____,43,55,67,77,85,91,94,96,98,99,99

2、一道逻辑题

  有ABCDE五个人去参加一个聚会,他们来自不同的城市,拥有不同的职业、穿着不同色调的服饰,按照一定的顺序先后到达并各自点了5种不同的饮料,其中:

  1. D 的职业是教授;
  2. 第3位到达的人点了杯牛奶;
  3. B 和律师相邻到达;
  4. 北京人穿着红色的衣服;
  5. 工程师和 A 相邻到达;
  6. 工程师和点了一杯水的人相邻到达。
  7. 作家点了杯啤酒;
  8. 最早到的是广州人;
  9. C 来自杭州;
  10. 青岛人点了茶;
  11. 穿着黑色衣服的人正好在穿白色衣服的人之前到达;
  12. 上海人的职业是医生;
  13. 广州人与穿蓝衣服的人相邻到达;
  14. 律师穿着黄色的衣服;
  15. 穿黑衣服的人点了杯咖啡;

  你能推理出ABCDE五个人的到达次序,以及他们各自来自哪个城市、从事什么职业、穿着什么颜色的衣服及到达之后点了何种饮料吗?

3、一道图形题

Figure-Completion

  上面是形状各异的8种图形,它们从左到右分别编号1-8号,请问:

1)如果2、4、8号图形归为同一类别,那么请再选择一个图形放入该类型,能使该类别中的所有图形具有最多的共同特征;

2)试着将上述8个图形分成3到4个类别,并使每个类别中的所有图形具有最多的共同特征,同时各类别间特征的差异最大。(也许分法有多种)

4、尝试做个预言家

  3个月前,facebook的用户量以无法阻挡的势头超越yahoo,预示着以WEB2.0为基础的信息集成开放平台已经替代传统的信息内容发布商,成为了互联网信息交互新的主导力量。

yahoo-facebook

  而在此同时,另外一股新兴的力量也在强势崛起,twitter的follow的概念让信息传播的速度以指数的形式迅速扩张,其同样简洁、实时的功能正在对传统的IM工具构成挑战:

msn-twitter

  twitter拥有了更广阔的平台和更透明的信息传递方式,是否也会在某一天,twitter的用户量会超越MSN成为即时信息传递的新宠,大家有兴趣的可以预测一下,在不久的将来会不会有这么一天,大概会在何时?

  也许你已经找到了自己的答案了,作者对以上问题的解释请参见你找到答案了吗?