2011-03-04 87 views
0

這更多的是試圖瞭解HTTP如何工作然後實現它的問題。如何分離背景HTTP請求

我需要一個HTTP分析器,它能夠將主頁面請求和來自某些HTTP日誌數據的「背景」請求分開。這個想法是將用戶發出的HTTP請求與後臺自動發生的請求(鬆散地使用這個術語)分開。因此,從我看到的HTTP數據的前幾個印象看來,似乎當我訪問任何普通網站時,會獲取文本/ html對象,然後是很多其他對象,如css,xml,javascript,圖像等。

現在,問題是如何區分這些「背景」請求,其中用戶主動不生成請求。這主要取決於我所知道的廣告提取,重定向和一些基於Ajax的事情。

有沒有人對此有任何意見。一些,經驗或可能是您可以指示我開始進行此分析的資源?

+0

我覺得平時(最簡單的)方式是文件類型將它們分開:'html','PHP '等請求是真正的命中,'css','js',圖像文件等是「背景」命中。當然,這不包含Ajax請求,它也可能會遇到'html'和'php'文件。 – Wukerplank 2011-03-04 09:52:13

回答

0

由於特定的用戶操作或由於來自裸露HTTP請求的其他自動過程,無法區分瀏覽器生成哪些請求。瀏覽器/客戶端是唯一具有這種知識的瀏覽器/客戶端,因此您必須將其作爲圖片的一部分,例如將分析器作爲瀏覽器插件來實現,或者將HTTP客戶端作爲分析器本身的一部分來嵌入。

如果您嘗試創建通用工具來分析流量負載,區分用戶直接「點擊」和自動請求產生的流量通常沒有意義。

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" 

(添加換行符以提高可讀性)