HTTP Monitor

From FirebugWiki

(Difference between revisions)
Jump to: navigation, search
(Local Network Event Flow)
Line 6: Line 6:
* [https://developer.mozilla.org/en/Monitoring_HTTP_activity Monitoring HTTP activity]
* [https://developer.mozilla.org/en/Monitoring_HTTP_activity Monitoring HTTP activity]
* [[Net Panel Remoting]]
* [[Net Panel Remoting]]
 +
== Prototype ==
== Prototype ==
-
Working prototype of ''HTTP Monitor'' (Firefox extension) is [https://github.com/janodvarko/httpmonitor/downloads available]. The prototype is based on Firebug's Net panel. See also [https://github.com/janodvarko/httpmonitor/blob/master/README.md instructions].
+
Working prototype of ''HTTP Monitor'' (Firefox extension) is [https://github.com/janodvarko/httpmonitor/downloads available]. The prototype is based on:
 +
 
 +
* Firebug's Net panel.
 +
* [http://getfirebug.com/wiki/index.php/Net_Panel_Remoting RemoteBug/Actor]
 +
 
 +
See also [https://github.com/janodvarko/httpmonitor/blob/master/README.md instructions].
 +
 
== Architecture ==
== Architecture ==
Line 14: Line 21:
[[File:Http-monitor-basic-architecture.png]]
[[File:Http-monitor-basic-architecture.png]]
 +
=== Local Network Event Flow ===
=== Local Network Event Flow ===
-
This sequence diagram describes local monitoring scenario where the user tracks tab on local browser.
+
This sequence diagram describes local monitoring scenario where the user tracks a browser tab on local browser.
-
 
+
[[File:Http-monitor-local-net-event-flow.png]]
[[File:Http-monitor-local-net-event-flow.png]]
Line 23: Line 30:
* '''HTTP Observer''' Observes HTTP traffic of the selected tab and sends every event to ''NetProgress'' object.
* '''HTTP Observer''' Observes HTTP traffic of the selected tab and sends every event to ''NetProgress'' object.
* '''NetProgress''' object processes incoming HTTP event and produces a ''File'' object that represents the HTTP request. It uses an existing ''File'' object if there is already one created for the request. The ''File'' is further passed to ''Net Panel''
* '''NetProgress''' object processes incoming HTTP event and produces a ''File'' object that represents the HTTP request. It uses an existing ''File'' object if there is already one created for the request. The ''File'' is further passed to ''Net Panel''
-
* '''NetPanel''' stores the file in a queue. Files in the queue are processed and rendered asynchronously on timeout.
+
* '''NetPanel''' stores the file in a queue. Files in the queue are processed and rendered asynchronously on a timeout.
 +
 
=== Remote Network Event Flow ===
=== Remote Network Event Flow ===
 +
This sequence diagram describes remote monitoring scenario where the user tracks a browser tab on remote browser. The flow shows how HTTP events are transported from the server to the client.
[[File:Http-monitor-remote-net-event-flow.png]]
[[File:Http-monitor-remote-net-event-flow.png]]
 +
 +
* '''HTTP Observer''' running on the server side send every HTTP event to the ''NetProgress'' instance (also on the server side)
 +
* '''NetProgress''' object processes incoming HTTP event and produces a ''File'' object (or uses an existing one) that represents the HTTP request. The File is further passed to ''NetworkMonitorActor''
 +
* '''NetworkMonitorActor''' stores the file in a queue that is processed asynchronously on a timeout and send in chunks (more files at once) over TCP/IP to the client.
 +
* '''Connection''' object on the client side receives a packet and passes it to a ''Protocol'' object.
 +
* '''Protocol''' object understands structure of the packet and passes it further to a ''RemoteProxy'' object.
 +
* '''RemoteProxy''' gets all ''files'' in the packet and passes it further to the ''NetPanel'' object.
 +
* '''NetPanel''' stores the file in a queue. Files in the queue are processed and rendered asynchronously on a timeout.

Revision as of 11:08, 16 April 2012

This page is related to HTTP Monitor tool. This tool (or a component) is intended to track HTTP activity of given local or remote browser tab and displays results to the user.

Contents

Resources


Prototype

Working prototype of HTTP Monitor (Firefox extension) is available. The prototype is based on:

See also instructions.


Architecture

Core architecture is based on the Net Panel and adapted to also support remote HTTP tracking.

Http-monitor-basic-architecture.png


Local Network Event Flow

This sequence diagram describes local monitoring scenario where the user tracks a browser tab on local browser.

Http-monitor-local-net-event-flow.png

  • HTTP Observer Observes HTTP traffic of the selected tab and sends every event to NetProgress object.
  • NetProgress object processes incoming HTTP event and produces a File object that represents the HTTP request. It uses an existing File object if there is already one created for the request. The File is further passed to Net Panel
  • NetPanel stores the file in a queue. Files in the queue are processed and rendered asynchronously on a timeout.


Remote Network Event Flow

This sequence diagram describes remote monitoring scenario where the user tracks a browser tab on remote browser. The flow shows how HTTP events are transported from the server to the client.

Http-monitor-remote-net-event-flow.png

  • HTTP Observer running on the server side send every HTTP event to the NetProgress instance (also on the server side)
  • NetProgress object processes incoming HTTP event and produces a File object (or uses an existing one) that represents the HTTP request. The File is further passed to NetworkMonitorActor
  • NetworkMonitorActor stores the file in a queue that is processed asynchronously on a timeout and send in chunks (more files at once) over TCP/IP to the client.
  • Connection object on the client side receives a packet and passes it to a Protocol object.
  • Protocol object understands structure of the packet and passes it further to a RemoteProxy object.
  • RemoteProxy gets all files in the packet and passes it further to the NetPanel object.
  • NetPanel stores the file in a queue. Files in the queue are processed and rendered asynchronously on a timeout.
Personal tools