HAR File Viewer
Your HAR stays in this browser. It is not uploaded, sent through Livewire, or placed in the URL.
HAR files can contain passwords, session cookies, authorization tokens, query values, and response bodies. Use a sanitized capture whenever possible.
Open a HAR capture
Reading HAR file…
Inspect an HTTP Archive without uploading it. This browser-based HAR viewer summarizes requests, status codes, transfer sizes, hosts and timing phases, then lets you search and inspect individual entries. Sensitive headers and every URL query value are hidden by default. The viewer accepts captures up to 20 MiB or 25,000 requests and keeps the working data inside your browser.
How it works
-
1
Open the capture
Choose or drop a .har or .json file. The browser validates the HAR log and request limit locally.
-
2
Find the request
Review the overview, search by method, masked URL, status or content type, and combine filters.
-
3
Inspect or export
Open request and response headers, review timing phases, and download a sanitized CSV or JSON summary.
What a HAR file contains
HAR stands for HTTP Archive. It is a JSON-based exchange format for a browser network log: the requests a page made, the responses it received, header metadata, sizes and a timing breakdown. Chrome DevTools documents how to save a sanitized HAR or a HAR with sensitive data in its Network features reference. Firefox provides Save All as HAR and Import HAR in the Network Monitor request list. The field structure follows the HAR 1.2 specification.
This viewer reads log.entries. A malformed entry without both a request and response is skipped rather than guessed. Optional fields may be absent, so an unavailable size, timestamp or phase stays unavailable. The tool never invents a status code or turns an unknown duration into zero.
Reading the overview
The overview separates facts that are known from values that were not recorded. Transfer size uses the browser-specific _transferSize when it is a valid non-negative number. Otherwise it uses headersSize + bodySize only when both values are known. Response content size is not treated as transferred bytes because compression, headers, caching and protocol overhead make those quantities different.
| Field | Meaning | Important limitation |
|---|---|---|
| Requests | Usable entries in log.entries |
Malformed entries are reported as skipped |
| Transferred | Sum of known transfer sizes | Unknown sizes are counted separately |
| Waterfall span | From the earliest valid start to the latest recorded end | Missing start times cannot be positioned reliably |
| Status groups | Recorded 2xx, 3xx, 4xx and 5xx responses | A missing status remains unavailable |
| Hosts | Distinct parsed host names | Invalid or relative URLs may have no host |
Search is literal and case-insensitive; characters such as [ or .* are not interpreted as regular expressions. Filtering changes the visible request list and exported rows, not the capture totals.
How timings are handled
HAR commonly records blocked, dns, connect, ssl, send, wait and receive in milliseconds. A value of -1 means the phase is unavailable. Values below -1, non-numeric values and non-finite numbers are also treated as unavailable.
ssl is normally a portion of connect, not an extra phase after it. Therefore the fallback duration sums blocked, DNS, connect, send, wait and receive without adding SSL again. When the entry’s reported total differs materially from the available phases, the viewer preserves the reported total and shows a warning instead of silently rewriting the capture. Waterfall geometry is always left-to-right, including on an Arabic page, because elapsed time has a fixed chronological direction.
Privacy and safe handling
A HAR may contain enough information to take over a signed-in session. Chrome specifically distinguishes sanitized exports from exports containing Cookie, Set-Cookie and Authorization data. This viewer masks those headers, proxy authorization, API-key-like headers and all URL query values by default. Revealing a header is an explicit local action. Imported strings are rendered as text, so markup inside a URL or header is not executed.
The viewer does not retain request bodies, response bodies, postData or cookie arrays in its working model. In the multi-step flow it stores a bounded, body-free project in IndexedDB for this browser tab, referenced by an opaque tab marker and expired after two hours. It does not replay requests, contact captured hosts or send the HAR through Livewire. Starting over deletes the saved project.
Exports are summaries, not copies of the original capture. URLs remain query-masked, header values and bodies are omitted, CSV cells are protected against spreadsheet-formula execution, and only the current filtered request rows are included. Even so, review any exported file before sharing it: host names, paths and status patterns can still disclose internal systems.
Practical workflow
- Prefer the browser’s sanitized HAR export.
- Reproduce only the failing page flow, then stop recording.
- Open the capture here and filter by status, host path or content type.
- Compare long waits with DNS, connection and receive time, while remembering that browser and proxy implementations may omit phases.
- Share only the sanitized summary needed for diagnosis, never the original capture unless the recipient and transfer channel are trusted.
Frequently Asked Questions
No. Parsing, filtering, detail inspection and exports happen in your browser. The file is not sent through Livewire or placed in the page URL.
HAR captures can include session cookies, bearer tokens, API keys and sensitive query parameters. The viewer hides every query value and recognized security-sensitive headers by default to reduce accidental disclosure.
Browsers and capture tools do not always record every optional HAR field. The viewer preserves that uncertainty instead of displaying a guessed zero.
Usually no. HAR records SSL as a subset of the connection phase, so the fallback total does not add SSL a second time.
No. It deliberately does not contact captured hosts or replay requests. Use browser DevTools in an authorized environment if you need to reproduce network behavior.
Related Tools
HEX Color Picker
Pick any colour visually and get its HEX, RGB, HSL, HSV and CMYK values, plus accessibility contrast against white and black.
Color Palette Generator
Generate monochromatic, analogous, complementary, triadic or tetradic color palettes from a base HEX color and export copy-ready CSS variables.
FPS Counter
Measure browser FPS with requestAnimationFrame, smoothing, min/max frame rate, warnings and an optional graph. Runs locally with no upload or API.
BBCode to HTML Converter
Convert BBCode (bulletin-board markup) to clean HTML. Handles formatting tags, lists, quotes, code, images, links and tables.
JSON Formatter
Paste JSON to pretty-print with 2 or 4 spaces, minify it to compact output, or run a quick syntax check before copying the result.
Random Color Palette Generator
Generate random color palettes from 2 to 15 swatches, choose a vibrant, pastel, muted or dark style, then copy HEX codes or CSS variables.