心有多大舞臺便有多大

          Embrace changes, pursue excellence, share niceness.

          clickstream項目體會

          clickstream是opensymphony上的一個開源項目,其目的是用于跟蹤用戶在web服務器上的瀏覽歷史.通過這個模塊得到的歷史數據,可以分析出用戶訪問網站的路徑,瓶頸,熱點連接等,并根據這些數據對系統功能做出適當調整.

          其設計的出發點是利用servlet的filter,在每次對servlet的訪問時就日志.日志的實現主要是通過在當前用戶的session中設置一個clickstream的跟蹤對象.并利用HttpSessionListener來跟蹤session的創建,銷毀事件,從而達到跟蹤一個用戶的瀏覽歷史功能.

          雞蛋里挑點骨頭吧!
          1.clickstream只有在用戶訪問servlet時才能實現跟蹤的目的.如果網站有很多的靜態頁面,那么就無法通過它來跟蹤了,還是apache的日志好啊!
          2.clickstream在每個對servlet的訪問都創建了一個session,這對很多不需要session的servlet來說,是不必要的.對于高并發訪問的系統,這會增加系統的負荷,尤其是如果站點是采用集群的話,更會帶來大量的session復制的性能問題.我建議才系統剛上線的時候或者有功能的重要更新的時候可以利用它來跟蹤用戶,以分析用戶行為,改進系統.

          posted on 2008-02-21 15:36 pony 閱讀(2304) 評論(4)  編輯  收藏 所屬分類: linux

          評論

          # re: clickstream項目體會 2008-02-22 13:36 pony

          今天在網上偶爾看到了http://www.opentracker.net這個網站,看了下他提供的功能:
          1.traffic analysis
          summary trend
          hourly trends
          dialy trends
          weekly trends
          monthly trends
          forecast
          bounce rate of visitors
          2.visitors
          online and recent visitors
          first time visitors
          returning visitors
          refered visitors
          visitors by search term
          entering
          exiting
          3.top navigation lists
          most popular pages
          top files & directory paths
          top referrers
          top search terms
          top search engines
          top exit links (3rd party)
          top exit pages
          top entry pages
          4.location data
          countries/ regions/ cities
          companies/ organizations
          ISPs
          DMA-codes (US)
          telephone area codes for U.S.
          ZIP/ postal codes (U.S. & Canada)
          continents
          subcontinents
          5.technical data
          operating system
          browsers
          display colors
          display resolutions
          routers
          domains
          什么時候有空自己也做一個類似的項目吧,我好缺米啊
            回復  更多評論   

          # re: clickstream項目體會 2008-02-25 11:49 pony

          今天把apache的--enable-usertrack安裝了.
          日志格式為:"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{cookie}n"
          從中可以得到:
          1.訪問時間:%t
          2.訪問內容:url
          3.從哪個頁面訪問url的:referer
          4.通過什么瀏覽器訪問的:user-agent
          5.是誰訪問:cookie
          6.訪問的結果:會把http狀態記錄,如304,404等
          有了這些數據,上面的需求基本都能實現了.  回復  更多評論   

          # re: clickstream項目體會 2008-02-25 13:25 pony

          Apache CustomLog的常用日志格式:
          格式字符串 描述
          %% 百分號(Apache2.0.44或更高的版本)
          %a 遠端IP地址
          %A 本機IP地址
          %B 除HTTP頭以外傳送的字節數
          %b 以CLF格式顯示的除HTTP頭以外傳送的字節數,也就是當沒有字節傳送時顯示'-'而不是0。
          %{Foobar}C 在請求中傳送給服務端的cookieFoobar的內容。
          %D 服務器處理本請求所用時間,以微為單位。
          %{FOOBAR}e 環境變量FOOBAR的值
          %f 文件名
          %h 遠端主機
          %H 請求使用的協議
          %{Foobar}i 發送到服務器的請求頭Foobar:的內容。
          %l 遠端登錄名(由identd而來,如果支持的話),除非IdentityCheck設為"On",否則將得到一個"-"。
          %m 請求的方法
          %{Foobar}n 來自另一個模塊的注解Foobar的內容。
          %{Foobar}o 應答頭Foobar:的內容。
          %p 服務器服務于該請求的標準端口。
          %P 為本請求提供服務的子進程的PID。
          %{format}P 服務于該請求的PID或TID(線程ID),format的取值范圍為:pid和tid(2.0.46及以后版本)以及hextid(需要APR1.2.0及以上版本)
          %q 查詢字符串(若存在則由一個"?"引導,否則返回空串)
          %r 請求的第一行
          %s 狀態。對于內部重定向的請求,這個狀態指的是原始請求的狀態,---%>s則指的是最后請求的狀態。
          %t 時間,用普通日志時間格式(標準英語格式)
          %{format}t 時間,用strftime(3)指定的格式表示的時間。(默認情況下按本地化格式)
          %T 處理完請求所花時間,以秒為單位。
          %u 遠程用戶名(根據驗證信息而來;如果返回status(%s)為401,可能是假的)
          %U 請求的URL路徑,不包含查詢字符串。
          %v 對該請求提供服務的標準ServerName。
          %V 根據UseCanonicalName指令設定的服務器名稱。
          %X 請求完成時的連接狀態:X= 連接在應答完成前中斷。
          += 應答傳送完后繼續保持連接。
          -= 應答傳送完后關閉連接。

          (在1.3以后的版本中,這個指令是%c,但這樣就和過去的SSL語法:%{var}c沖突了)

          %I 接收的字節數,包括請求頭的數據,并且不能為零。要使用這個指令你必須啟用mod_logio模塊。
          %O 發送的字節數,包括請求頭的數據,并且不能為零。要使用這個指令你必須啟用mod_logio模塊。
            回復  更多評論   

          # re: clickstream項目體會 2008-03-20 09:25 pony

          昨天晚上cloudwards跟我說,google的analytics就能實現這個clickstream的功能.確實是,不過,google的東西還是有些缺陷的,例如,第一,它不能跟蹤到一個用戶,而用了apache的這個模塊,就可以通過cookie來跟蹤;第二,它不能統計一個頁面上引用的其它資源的調用,如圖片,而通過apache的日志,這些都可以記錄下來,這些數據對于優化網頁的大小,甚至分布部署都是很有用的;第三,它不能統計出訪問一個頁面需要的時間,而apache的日志可以記錄接收請求的時間,返回響應的時間,這對于分析網站的性能是很重要的數據;第四,apache的日志還可以記錄每個請求返回的字節數.
          所以,我想自己做的這個工具應該還是挺有用的.但我可以去借鑒下google analytics的報表  回復  更多評論   

          主站蜘蛛池模板: 彭水| 健康| 扎赉特旗| 中超| 栖霞市| 临城县| 新郑市| 双鸭山市| 江口县| 萨迦县| 无极县| 鸡西市| 安阳市| 邵阳县| 金寨县| 长兴县| 新民市| 三明市| 岢岚县| 交口县| 加查县| 栾川县| 高雄县| 荣昌县| 兰西县| 申扎县| 定日县| 溧阳市| 姚安县| 五寨县| 遂平县| 铁岭市| 上杭县| 博白县| 定西市| 定结县| 织金县| 桑日县| 南部县| 丹江口市| 珠海市|