Web archives
The Memento protocol explained: asking the web for a page as it was on a date
Short answer
- Document
- RFC 7089, December 2013 1
- Authors
- H. Van de Sompel, M. Nelson and R. Sanderson 1
- Status
- Informational, not Internet Standards Track 1
- Request header
- Accept-Datetime 1
- Response header
- Memento-Datetime 1
- Link relations
- original, timegate, timemap, memento 1
The four parts of Memento
RFC 7089 defines four kinds of resource 1. Each has a short label in the document, such as URI-R for the address of the original page.
| Term | Label | What it is |
|---|---|---|
| Original Resource | URI-R | A resource that exists or used to exist, whose prior states may need to be reached 1 |
| Memento | URI-M | A resource that holds a prior state of an Original Resource 1 |
| TimeGate | URI-G | A resource that supports datetime negotiation to reach prior states 1 |
| TimeMap | URI-T | A resource that lists the URIs of the mementos for an Original Resource 1 |
How datetime negotiation works
RFC 7089 calls its method datetime negotiation. It is a variation on HTTP content negotiation in which the client states a preferred datetime instead of a media type 1. The server selects the memento closest to that preference 1.
A typical sequence has four steps, as the RFC describes it 1.
- The client requests the original page with an Accept-Datetime header 1.
- The response points to a TimeGate through a link with the relation type timegate 1.
- The client negotiates with the TimeGate, which selects a memento 1.
- The client retrieves the selected memento, which carries a Memento-Datetime header 1.
Headers and links
Accept-Datetime is a request header. It tells a server which past datetime the client wants 1. Memento-Datetime is a response header. It gives the archival datetime of a memento, and RFC 7089 treats its presence as a promise that the captured state will no longer change 1.
A TimeGate adds accept-datetime to its Vary header to show that datetime negotiation is available 1. Links use four relation types: original points to the Original Resource, timegate to a TimeGate, timemap to a TimeMap, and memento to a specific memento with a datetime attribute matching its Memento-Datetime 1.
The RFC allows two response styles. In one the TimeGate redirects the client to the memento URI, in the style of a 302 response. In the other it returns the memento directly with a 200 response and a Content-Location header 1.
Limits to keep in mind
The memento returned may be far from the date asked for. RFC 7089 notes that archives are often sparse, so the returned datetime can differ noticeably from the requested one 1. Anyone citing a memento should quote the Memento-Datetime value, not the date they asked for.
Memento describes how to find and serve captures, not how to store them. Many archives store captures in the WARC file format, set out in ISO 28500:2017 3. WARC records hold the content and control information from protocols such as HTTP, with metadata and request headers, and support record integrity 3.
The Wayback Machine shows the same idea in its URLs. The Internet Archive says the 14-digit code in an archived URL is the capture date and time, as yyyymmddhhmmss, and that replacing it with an asterisk lists all captures of a site 2. That list works like a TimeMap for human readers 1,2.
Why Memento matters for evidence and citation
A Memento-Datetime header is a machine-readable statement by the archive of when a copy was made 1. It is the archive's own claim. It is not a signed timestamp from an independent party, which is a different tool covered by RFC 3161 time-stamp tokens.
When citing a page, a stable memento URI with its datetime lets a reader find the same capture again 1,2.
Common questions
Is Memento an official internet standard?
No. RFC 7089 is an Informational document and says it is not an Internet Standards Track specification 1.
What is a TimeGate?
A resource that supports datetime negotiation, choosing the archived copy closest to the date a client asks for 1.
What is the difference between Accept-Datetime and Memento-Datetime?
Accept-Datetime is what the client asks for. Memento-Datetime is when the archive says the copy was captured 1.
Will a TimeGate always return a copy from the exact date I ask for?
No. RFC 7089 notes that archives are often sparse, so the copy returned may be from a different datetime 1.
Rules and charges change. Check the official source linked on this page before you pay or travel. Spotted an error? Email hello@whatitsaidthen.com.
Sources
Related
- How web archives work: crawlers, captures and gaps
How the Wayback Machine and national libraries capture web pages, what the date in an archived URL means, what gets missed and who decides.
- How to cite an archived page: what to record so others can find the same capture
What to record when citing a Wayback Machine or other archived page: original URL, archive URL, capture time, archive name, and how courts handle link rot.
- Trusted timestamps explained: RFC 3161 tokens and EU qualified time stamps
How an RFC 3161 time-stamp token proves data existed at a time, what a Time Stamping Authority signs, and the legal effect of EU qualified time stamps.
- National web archives compared: who collects, under what law, and who can see it
How the British Library, Library of Congress, BnF, Library and Archives Canada, NLA and Japan's NDL collect websites and who may view the captures.