这更像是一个尝试理解HTTP如何工作然后实现它的问题。
我需要一个HTTP分析器,它能够将主页面请求和来自某些HTTP日志数据的“后台”请求分开。我们的想法是将用户发出的HTTP请求与在后台自动发生的请求(松散地使用此术语)分开。所以,从我看到的HTTP数据的前几个印象看起来,当我去任何普通网站时,提取文本/ html对象,然后是许多其他对象,如css,xml,javascript,图像等。
现在,问题是如何在用户主动不生成请求的情况下分离这些“后台”请求。根据我所知,这主要是广告提取,重定向和一些基于Ajax的事情。
有没有人对此有任何想法。一些,经验或可能是资源,你可以指点我开始做这个分析?
答案 0 :(得分:0)
由于特定的用户操作或者来自裸HTTP请求的其他自动化进程,无法区分浏览器生成哪些请求。浏览器/客户端它是唯一具有此类知识的人,因此您必须将其作为图片的一部分,例如将分析器实现为浏览器插件或将HTTP客户端嵌入分析器本身。
如果您正在尝试创建分析流量负载的通用工具,区分用户直接“点击”产生的流量和自动请求通常没有意义。
答案 1 :(得分:0)
没有直接而干净的方法来做到这一点。但是,您可以过滤掉明显不是“用户”请求的文件请求,例如* .jpg。此外,您可以过滤掉不是HTTP / 200响应的内容(例如,301和302重定向)。
尝试以下方面的内容:
cat access.log
| grep -E -v "(.gif|.ico|.png|.jpg|.jpeg|.js|.css) HTTP"
| grep "HTTP/1.1\" 200"
(为了便于阅读添加了换行符)