HAR stands for HTTP Archive
format used by various HTTP monitoring tools
to export collected data. This format is based on JSON and is supported by
many tools on the market including all main browsers (Firefox/Chrome/IE/Edge etc.)
HAR spec:
- http://www.softwareishard.com/blog/har-12-spec/
- https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/HAR/Overview.html
HAR adopters:
Network monitor tool (in Firefox) supports exporting data in HAR format and the implementation consists from the following objects.
This object is responsible for automated HAR export. It listens for Network activity and triggers HAR export when the page is loaded.
The user needs to enable devtools.netmonitor.har.enableAutoExportToFile
pref
and restart Firefox to switch this automation tool on.
This object is responsible for building HAR object (JSON). It gets all HTTP requests currently displayed in the Network panel and builds valid HAR. This object lazy loads all necessary data from the backend if needed, so the result structure is complete.
This object is responsible for collecting data related to all HTTP requests executed by the page (including inner iframes). The final export is triggered by HarAutomation at the right time.
Note: this object is using it's own logic to fetch data from the backend. It should reuse the Netmonitor Connector (src/connector/index), so we don't have to maintain two code paths.
This object represents the main public API designed to access export logic. Clients, such as the Network panel itself, or WebExtensions API should use this object to trigger exporting of collected HTTP data from the panel.