HAR — HTTP Error Responses (401 to 500)
Five failing requests covering authentication, authorisation, a missing resource, rate limiting with a Retry-After header, and a server error that returns HTML instead of the JSON the client asked for. The last one is the case that breaks clients which parse by status code rather than by content type.
{
"log": {
"version": "1.2",
"creator": {
"name": "Novus Examples HAR writer",
"version": "1.2",
"comment": "HAR 1.2 - de-facto format from an abandoned W3C editorial draft (2012); never published as a W3C Recommendation"
},
"browser": {
"name": "Sample Browser",
"version": "126.0"
},
"pages": [
{
"startedDateTime": "2026-08-07T09:14:22.031Z",
"id": "page_1",
"title": "https://www.example.com/cart",
"pageTimings": {
"onContentLoad": 214.5,
"onLoad": 388.9
}
}
],
"entries": [
{
"pageref": "page_1",
"startedDateTime": "2026-08-07T09:14:22.031Z",
"time": 19.7,
"request": {
"method": "GET",
"url": "https://api.example.com/v1/cart/c_9990",
"httpVersion": "HTTP/1.1",
"cookies": [],
"headers": [
{
"name": "Host",
"value": "api.example.com"
},
{
"name": "User-Agent",
"value": "Mozilla/5.0 (X11; Linux x86_64) NovusSampleAgent/1.0"
},
{
"name": "Authorization",
"value": "Bearer SAMPLE-ACCESS-TOKEN-NOT-A-REAL-CREDENTIAL"
}
],
"queryString": [],
"headersSize": 186,
"bodySize": 0Specifications
- Seed
- 61200
- Encoding
- UTF-8
- Line Endings
- LF
- Har Version
- 1.2
- Entries
- 5
- Status Codes
- 401, 403, 404, 429, 500
- Has Retry After
- true
- Auth Scheme
- Bearer (SAMPLE placeholder)
- Spec Status
- HAR 1.2 - de-facto format from an abandoned W3C editorial draft (2012); never published as a W3C Recommendation
Testing contract
Expected to pass- Scenario
- Classify failed requests from a capture and decide which are retryable.
- Expected result
- The 429 is retryable after 30 seconds from its Retry-After header; the 401 and 403 are not, and the 500 returns text/html despite the JSON Accept header.
What is a .har file?
HAR (HTTP Archive) is a JSON format that records a browser or client's network activity. A log object carries the creator, one or more pages, and an ordered list of entries, each holding a full request and response — method, URL, headers, cookies, query string, POST data, status, content, transfer sizes — plus per-phase timings for DNS, connect, send, wait, and receive. Every major browser's developer tools can export one.
How to use this file
Use an example .har file to test waterfall viewers, performance-budget checkers, and traffic-replay or mock-server tooling, asserting that entry timings sum to the recorded total and that header, cookie, and body content is parsed without loss.
How to use this file for testing
“HAR — HTTP Error Responses (401 to 500)” is a deterministic Novus Examples fixture for API testing, Performance testing, JSON parsing. OpenAPI/Swagger specs, GraphQL SDL, JSON Schema, paginated and problem+json error payloads, and webhook samples — for testing API clients, mock servers, contract tests, and schema validators.
Documented properties for this file: seed 61200 · 5 entries · UTF-8 · LF. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
Test and coverage reports document their totals (suites, cases, passes, failures, skips, covered lines) in the spec table. Point your CI dashboard, coverage gate, or report converter at the file and assert those counts survive; format twins carry identical numbers so a conversion can be scored exactly.
Related files
- harHAR — Base64-Encoded Binary BodyA PNG response whose body is carried as base64 with content.encoding set accordingly. content.size is the DECODED byte count, not the length of the base64 string, which is the field readers most often get wrong when computing transfer weight.

- harHAR — Cache State Before and AfterA conditional request answered 304 with full beforeRequest and afterRequest cache state, next to a first-time fetch whose beforeRequest is null. The null is the documented way to say "not in the cache", and readers that treat it as a missing object rather than an explicit absence lose the distinction.

- harHAR — Compressed Response and Transfer SizeA gzip-compressed JSON response where content.size is the uncompressed length, bodySize is the bytes on the wire, and content.compression is the saving between them. It also carries the non-standard _transferSize field browsers add, which readers must tolerate rather than reject.

- harHAR — HTTP/2 Request with Connection DetailAn HTTP/2 entry with lowercase pseudo-headers, an httpVersion of "h2" rather than "HTTP/2.0", an ssl phase inside connect, and three underscore-prefixed custom fields. Version strings are not standardised across writers, so anything matching on "HTTP/1.1" misses this entry entirely.

- harHAR — Multipart File UploadA two-part multipart/form-data upload: a text file part with a fileName and a plain field part. The body uses CRLF between MIME parts because RFC 7578 requires it, even though the surrounding HAR document is LF-terminated — a distinction that matters when a replay tool rewrites the body.

- harHAR — Query String and Header Edge CasesOne request whose query string encodes a space as %20 in one parameter and as + in another, includes a parameter with an empty value, and carries an Accept-Language header with quality values. The parsed queryString array is the answer key for whatever a URL parser produces from the raw URL.

Generated by generation/testing.py. Free for any use, no attribution required — license.