WAIS & Z39.50 Protocol Specification
Technical reference for archival interoperability, legacy protocol endpoints, and historical information retrieval standards maintained by the 1990 Web Archive.
OVERVIEW Historical Context & Archive Implementation
Before modern HTTP search indexing, the early internet relied on decentralized retrieval protocols. WAIS (Wide Area Information Server) and ANSI Z39.50 enabled structured querying of remote databases across TCP/IP networks. The 1990 Web Archive preserves native compatibility with both standards to support digital historians, library science researchers, and protocol archaeologists.
Our implementation runs dual-stack protocol servers, translating modern archival storage into compliant Z39.50 (ISO 23950) and WAIS responses while preserving original query semantics, record formats, and error codes.
Z39.50 Specification & Endpoints
ANSI Z39.50 defines a client/server protocol for bibliographic and archival retrieval. The archive exposes Z39.50 compliant databases mapping to era-specific web collections.
| Parameter | Value / Description |
|---|---|
| Standard Port | 210 (TCP) |
| Archive Host | z3950.1990webarchive.org |
| Database Names | geoCities_1995, angelfire_1997, academia_1990-1994, full_text_index |
| Record Syntax | USMARC, ISBD, 1990WEB/XML (custom archival extension) |
| Authentication | None required for public collections. RESEARCHER_TOKEN for restricted tiers. |
Query Syntax & Examples
-- Z39.50 Prefix Query (CQL-style mapped) prefix "web-archive-1990s" search "title contains 'netscape' and date = 1995" result-set name=1 present result-set-name=1 record-format=1990WEB/XML close
Supported Z39.50 Attributes
Metadata.title
Matches <title> tags, document headers, and catalog metadata.
Metadata.originator
Matches domain registrants, HTML <author> tags, or WHOIS data.
Metadata.archiveDate
ISO 8601 capture timestamps. Supports range queries: date >= 1994-01-01.
Content.fulltext
Boolean indexing across archived HTML, plain text, and extracted body content.
WAIS Specification & Endpoints
WAIS (Wide Area Information Server) uses a request/response model over TCP port 210 (or 211 in dual-stack configurations). It supports text queries, title searches, and source indexing. The archive emulates native WAIS behavior for historical client compatibility.
| Parameter | Value / Description |
|---|---|
| Standard Port | 211 (TCP) - Dedicated WAIS stack |
| Archive Host | wais.1990webarchive.org |
| Query Types | 0x01 (Text), 0x02 (Title), 0x03 (Source), 0x04 (Index) |
| Index Format | Flat-file WAIS indexes with TF-IDF scoring |
| Response Format | Native WAIS records, optionally mapped to text/x-wais |
WAIS Query Protocol
# WAIS Query Frame (Hex structure) 0x00 ; Query Type: 0x01 (Text Query) 0x01 ; Source Code: 0x01 (Text) 00 00 ; Index Count: 0 (full scan) "early web protocols history" ; UTF-8 payload
/api/v2/wais-proxy endpoint for JSON-mapped results.
INTEGRATION Client & Library Support
The archive provides official client libraries and interoperability layers for modern environments.
// JavaScript Example: Z39.50 Query via Archive Proxy const { Z3950Client } = require('1990-archive-sdk'); const client = new Z3950Client({ host: 'z3950.1990webarchive.org', port: 210, database: 'geoCities_1995', auth: process.env.ARCHIVE_KEY }); const results = await client.search( 'title contains "under construction" and fileExtension = .html', { limit: 50, format: 'raw-html' } ); console.log(results.count); // 14,283 records
Supported Modern Languages
Node.js / JavaScript
npm i 1990-archive-sdk - Full Z39.50 & WAIS client with Promise API
Python
pip install archive-wais-z3950 - Asyncio support, MARC parsing utilities
Rust
cargo add 1990-archive - Zero-copy protocol encoding, high-throughput archival scraping
COMPLIANCE Standards & Preservation Notes
All archival implementations adhere to the following specifications:
- ANSI Z39.50-2012 (ISO 23950:2012) - Bibliographic retrieval
- RFC 1058 - WAIS Protocol Specification
- MARC 21 & UNIMARC - Bibliographic metadata mapping
- ISO 8601 - Temporal indexing & capture timestamps
- W3C Archive Specifications - Cross-referencing with webarchive.org standards
Record integrity is maintained via SHA-256 block signatures. Original 1990s HTML is preserved in WARC format alongside protocol-native exports. Discrepancies between rendered views and raw protocol outputs are documented in the Archival Rendering Matrix.