web服务器中获取统计数据-猜测

​ web请求中,web服务器的日志中会留有一些信息,这些信息可以供后续数据分析只有。常用的有apache和nginx服务器,两者日志格式相差不是很多。日志格式可以配置,具体配置方式不详细介绍,网上肯定很多。

常见的分析方式有两种:

(1)在服务器上通过shell或者python脚本分析,将结果数据搞到数据库

(2)将服务器上的原始文件拉到特定的分析服务器,分析服务器对于结果分析,然后搞到数据库

两种方式各有利弊,第一种的话获取结果的脚本需求部署到每台机器上去,好处是减少网络传输,第二种的话好处是服务器不需要部署脚本,直接拖数据到分析服务器即可,缺点是网络传输消耗比较大。

 

apache和nginx中常见的日志信息(下面是两个日志配置)

nginx:"$remote_addr $request_time_usec $http_x_readtime [$time_local] \"$request_method http://$host$request_uri\" $status $body_bytes_sent \"$http_referer\" \"$http_user_agent\"";

apace:"%h %D %{X_READTIME}i %t \"%m http://%V%U%q\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

可以获取的信息有以下几个(基本上是基于http协议的一下信息)

(1)来源ip

(2)请求响应时间

(3)请求时间点

(4)请求URL(包含get或者post信息)

(5)返回的http状态码

(6)返回的信息的大小

(7)来源URL(refer信息)

(8)浏览器和操作系统数据

 

基于这些基本数据,我们可以做哪些分析(做了简单的描述)?

(1)统计每秒请求的数量(即QPS)以及特定时间内的总请求书

(2)统计每秒请求的用户数(UV),但是理论上是IPV

(3)统计系统的平均响应时间(基于每次请求的时间做平均)

(4)用户在页面上的停留时间,这个需要结合refer以及时间点,可能会有些许不准确

(5)用户路径分析,分析refer数据,例如A>B点数据,refer是A,那用户先到A页面再到B页面

 

基于web服务器获取的数据毕竟有限,想要获取更多用户的行为或者统计数据,还看一怎么做?

(1)页面通过js来进行埋点

用户的行为会触发浏览器对被统计页面的一个http请求,,页面中的埋点javascript片段会被执行,用过相关工具的朋友应该知道,一般网站统计工具都会要求用户在网页中加入一小段javascript代码,这个代码片段一般会动态创建一个script标签,并将src指向一个单独的js文件,此时这个单独的js文件会被浏览器请求到并执行,这个js往往就是真正的数据收集脚本。

(2)在服务端代码中添加埋点

将埋点的统计数据临时放置在内存中,然后将数据定时的写入磁盘,之后基于这些信息来进行分析。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 App Inventor 创建一个 Web 客户端来获取服务器数据,你可以使用 Web 模块和相应的组件。下面是一个简单的示例: 1. 在 App Inventor 创建一个新项目,并打开设计视图。 2. 在组件面板,找到并添加一个 Web 组件。 3. 在屏幕上添加一个按钮组件,并为其命名为 "Get Data"。 4. 在 Blocks 编辑器,找到 "Button1" 的点击事件,将其拖动到工作区。 5. 在工作区,使用 Web 组件的方法和事件块来获取服务器数据。 - 使用 `Web1.GotText` 事件块来处理获取到的服务器数据。 - 在 `Button1.Click` 事件块,使用 `Web1.Get` 方法发送 GET 请求到服务器获取数据。 下面是一个示例代码: ```blocks // 当按钮点击时触发 Button1.Click // 设置 Web 组件的请求 URL Web1.Url = "http://your_server_url/data" // 发送 GET 请求并获取服务器数据 Web1.Get() // 当获取服务器数据时触发 Web1.GotText // 将获取到的数据显示在标签组件上 Label1.Text = Web1.ResponseContent ``` 在这个示例,我们设置了 Web 组件的 URL 为服务器的地址,并在按钮点击事件发送 GET 请求。当获取服务器数据后,`GotText` 事件将被触发,我们将服务器数据显示在一个标签组件上。 请确保将 "your_server_url" 替换为你实际的服务器地址。另外,还可以根据服务器的 API 接口定义来添加其他必要的参数和头部信息。 这只是一个简单的示例,你可以根据你的需求扩展和定制这个代码。App Inventor 的 Web 组件提供了更多的方法和事件,如 POST 数据、处理错误等,你可以查阅相应的文档以了解更多信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值