WAP-1990 v2.4.1 • STABLE

Web Archive Protocol Specification

Technical standard for capturing, preserving, verifying, and retrieving early web content (1990–1999). Defines data structures, cryptographic verification, and interoperable archival workflows.

Protocol Version
2.4.1 (RFC-2023)
Base Standard
WARC-1.1 / RFC 8492
Hash Algorithm
SHA-256 / BLAKE3
Status
● Production Ready

Protocol Overview

The 1990 Web Archive Protocol (WAP-1990) establishes a deterministic pipeline for ingesting legacy HTTP/1.0-1.1 resources, normalizing DOM structures, and storing them in an immutable, cryptographically verifiable format. The protocol prioritizes reproducibility, metadata fidelity, and forward compatibility.

Core Principles

  • Immutability: Once archived, records are append-only and cryptographically locked.
  • Temporal Precision: All captures include RFC 3339 timestamps with UTC normalization.
  • Format Agnosticism: Supports HTML 2.0–4.01, XHTML 1.0, early CSS, CGI scripts, and MIDI attachments.
  • Transparent Provenance: Every archive entry traces back to its capture agent, network path, and verification hash.

Technical Specification

The protocol operates through a three-phase pipeline: Capture → Normalize → Archive. Each phase enforces strict validation and emits structured metadata.

1

HTTP Capture

Socket-level interception with TLS/HTTP fallback

2

DOM Normalization

Tag validation, entity decoding, charset mapping

3

WARC Packaging

Compression, hashing, manifest generation

Capture Parameters

Parameter Type Required Description
capture_agent string REQUIRED Identifier of the crawler/agent (e.g., wap-crawler-v2)
target_url uri REQUIRED Original URL including protocol, query strings, and fragments
timestamp_iso datetime REQUIRED RFC 3339 UTC timestamp of capture initiation
render_engine enum OPTIONAL Emulation profile: netscape-3, ie4, opera3, raw
include_assets boolean OPTIONAL Whether to recursively fetch referenced images, CSS, and MIDIs

API Endpoints

WAP-1990 exposes a RESTful interface for programmatic archive submission and retrieval. All requests require OAuth 2.0 client credentials or API key authorization.

Submit Archive

POST /v2/archive/submit JSON • 201 Created
POST /v2/archive/submit HTTP/1.1 Host: api.1990webarchive.org Authorization: Bearer <token> Content-Type: application/json { "target_url": "http://www.geocities.com/Area51/Neon/7842/", "capture_agent": "wap-crawler-v2.4", "render_engine": "netscape-3", "include_assets": true, "metadata": { "original_charset": "ISO-8859-1", "server_headers": { "Server": "Apache/1.3.6" } } }

Retrieve Archive

GET /v2/archive/{record_id} JSON • 200 OK
GET /v2/archive/rec_9f8a2b1c4d HTTP/1.1 Host: api.1990webarchive.org Authorization: Bearer <token> { "record_id": "rec_9f8a2b1c4d", "status": "archived", "checksum_sha256": "a1b2c3d4e5f6...", "warc_location": "s3://archive-bucket/1997/geo/04/warc_082.warc.gz", "verification_url": "https://verify.1990webarchive.org/rec_9f8a2b1c4d" }

Verify Integrity

POST /v2/archive/verify JSON • 200 OK
POST /v2/archive/verify { "record_id": "rec_9f8a2b1c4d", "proof_type": "merkle-root" } // Response includes cryptographic proof chain // linking the capture to the root archive ledger

Implementation Guide

Integrating WAP-1990 into your archival pipeline requires adhering to the normalization rules and payload structure defined below.

DOM Normalization Rules

  • Self-closing tags must be standardized to XHTML 1.0 compatible syntax
  • HTML entities (&, <, >) must be preserved exactly as received
  • Inline event handlers (onload, onmouseover) are preserved but flagged in metadata
  • Frame and iframe sources are resolved relative to the origin URL

Metadata Schema (JSON-LD)

@context • WAP-1990 Metadata
{ "@context": "https://1990webarchive.org/contexts/wap-2.4.jsonld", "@type": "ArchivedResource", "captureTime": "1997-08-12T14:22:03Z", "originalUrl": "http://www.example.com/", "contentHash": { "@type": "CryptographicHash", "hash": "sha256:abc..." }, "preservationTier": "gold", "renderProfile": "netscape-3.04-win95" }

Standards & Compliance

WAP-1990 is designed to interoperate with established web archiving standards while extending them for early-web specificity.

Standard Compliance Level Notes
WARC-1.1 (RFC 8492) EXTENDED Supports WARC-JSON and legacy HTTP/1.0 framing
IASA WAC FULL Meets Web Archiving Coalition interoperability criteria
Schema.org / JSON-LD FULL Metadata exposed via semantic web endpoints
GDPR / Data Minimization AUDITED PII redaction pipeline available for opt-in archives