Skip to content

HAR export

Click Export HAR in the captures view header. A save dialog opens; pick a location and ProxyPro writes a .har file.

The HAR format is supported by:

  • Chrome DevTools — Network panel → right-click → Import HAR file
  • Firefox DevTools — Network panel → cog → Import HAR
  • Charles — File → Import Session
  • Various third-party HAR viewers (HAR Analyzer, etc.)

What’s exported

Flow kindExported?Notes
HTTP/1.1Full request + response, headers, body
HTTP/2Treated as h1-like in HAR (the spec predates h2)
WebSocketNo canonical HAR mapping; omitted from the export
gRPCSame

Per-flow metadata we add (under HAR’s _proxypro extension):

  • flowId — stable across captures
  • kind — the original Flow.kind so external tools can preserve our classification
  • bodyOmissions — present only when a request or response body could not be exported. Its code, expected/exported byte counts, and message distinguish an unavailable body from a per-body or whole-export limit.

Body encoding

  • Text bodies (UTF-8 decodable, no excessive control chars) — exported inline as entry.response.content.text.
  • Binary bodies — base64-encoded with entry.response.content.encoding = "base64". Compatible with all major HAR viewers.

Before opening the save dialog, ProxyPro loads non-inline bodies from the live engine’s RAM/SQLite body store. The progress bar can be cancelled and body loads yield between items, so capture browsing stays usable. Imported sessions use the bodies already contained in that session and never read an unrelated live-engine body reference.

Hydration is bounded to 16 MiB per body and 64 MiB per export. A body outside those limits, an evicted body, or an imported truncated body keeps its known size and any available inline prefix; _proxypro.bodyOmissions explains why the remainder is absent. The file remains valid HAR 1.2.

What’s not exported

  • Bodies unavailable from the engine or over an export limit — represented by the explicit _proxypro.bodyOmissions marker instead of silently looking complete.
  • Cookies as structured fields — HAR’s cookies array is empty; the raw Cookie: / Set-Cookie: headers are present so most viewers display them anyway.

Privacy

Timings

Measured DNS, connect, TLS, request upload, TTFB, and download phases map to HAR timings. HAR uses -1 for DNS/connect/SSL when an existing pooled connection was reused; ProxyPro never invents those setup phases. Total time is the capture’s response completion delta.

HAR import

HAR import is not implemented. ProxyPro’s versioned .ppsession format is the supported offline review/baseline workflow.