Private web-archive preflight

WARC Structure & Digest Auditor

Open a WARC or WARC.GZ file to audit record boundaries, required fields, identifiers, relationships, HTTP message and payload boundaries, segmentation, and declared SHA digests without uploading an archive.

Local WARC container

Choose a web archive

No local archive selected.

Input is limited to 50 MiB and expanded WARC data to 100 MiB, 100,000 records, 1,000 fields per record, and 10,000 displayed findings. Gzip is decompressed locally by the browser.

Choose a WARC or WARC.GZ file to begin.

Archive bytes, captured URLs, headers, payload previews, and calculated hashes stay in this browser tab. Nothing is uploaded, fetched, replayed, executed, repaired, or sent to a repository.

What this WARC auditor checks

The parser walks the file byte by byte, requires WARC/1.0 or WARC/1.1 version lines and CRLF framing, enforces declared Content-Length boundaries and record terminators, inventories headers without interpreting unknown extensions, and checks mandatory type, record ID, date, target URI, revisit, conversion, and continuation fields where applicable.

HTTP payloads and digests

For application/http request and response blocks, the audit locates the embedded HTTP header terminator, checks the start-line kind, exposes status or method and media type, and separates protocol headers from payload bytes. SHA-1, SHA-256, SHA-384, and SHA-512 block digests are recalculated over the exact WARC block. Payload digests are compared only where this tool can establish the complete logical payload boundary—supported unsegmented HTTP messages and resource records—and hex or unpadded Base32 values are preserved.

IDs, references, and segmented records

Record IDs must use angle-bracketed absolute URIs and remain unique within the file. Concurrent, refers-to, warcinfo, and segment-origin references are checked for syntax and reported when their target is not present locally. Segment numbers, origins, duplicates, gaps, and a declared final total length are reconciled without assuming that every related record must live in one WARC file.

Validation boundary

A clean report is not ISO 28500 certification, successful replay, or proof of authentic content. This bounded browser audit does not crawl or replay pages, execute captured code, validate every protocol, reconstruct chunked HTTP entities, canonicalize URIs, verify digital signatures, scan malware or secrets, compare a CDX index, inspect WACZ packaging, repair records, or apply a repository profile. Gzip handling depends on the current browser's decompressor. Use maintained archival tooling and repository procedures for authoritative ingest.

Frequently asked questions

Does it support concatenated WARC.GZ members?

The page passes the selected gzip stream to the browser's standards-based decompressor. Browser behavior for unusual legacy or damaged multi-member streams can differ, so retain an uncompressed WARC or a specialist WARC tool for confirmation.

Why can an unresolved reference be only a warning?

A legal relationship can point to a record held in another WARC file. The page reports that the ID is absent from this selected file without falsely declaring the external record nonexistent.

Does a verified digest prove authenticity?

No. It proves only that the selected bytes match the digest value stored in the same archive. Without a separately trusted signature or manifest, both content and digest could have changed together.

Can it extract or replay a captured page?

No. Replay requires safe URL rewriting, resource resolution, policy decisions, and active-content isolation. This page stays read-only and diagnostic.

Authoritative format references

The record grammar, mandatory fields, record types, payload concept, digest scope, and segmentation checks follow the IIPC publication of the WARC 1.1 specification, corresponding to ISO 28500:2017. The standard remains current after ISO's 2023 confirmation.

Validate a BagIt package · Inspect MARC 21 records · Browse preservation tools