Перейти к основному содержимому

Memento — стандарт «time travel» для веб-архивов

Memento — стандарт IETF (RFC 7089, 2013) для доступа к историческим версиям веб-страниц. Он описывает, как HTTP-клиент (браузер, скрипт, расширение) может попросить у «архива» ближайшую к нужной дате версию URL или получить полный список всех снимков.

Зачем архивисту: без Memento каждая архивная система придумывает свой API. С Memento можно одной командой спросить Internet Archive, национальные архивы и Archive.today одновременно — через Memento Aggregator.

Три типа URI​

ТипЗачемПример
Original (Original Resource)Живой URL, который архивируемhttps://example.com/
MementoКонкретный архивный снимок с фиксированной датойhttps://web.archive.org/web/20260601120000/https://example.com/
TimeGateРесурс-редиректор: «дай мне ближайший снимок к этой дате»https://web.archive.org/web/20260615/https://example.com/
TimeMapСписок всех Memento для Originalhttps://web.archive.org/web/timemap/link/https://example.com/

TimeGate — редирект к ближайшему снимку​

TimeGate ведёт себя как обычный URL, но возвращает 302 Found с Location на конкретный Memento:

# Без Accept-Datetime → ближайший к сегодня
curl -I 'https://web.archive.org/web/https://example.com/'

# С конкретной датой
curl -I \
-H 'Accept-Datetime: Mon, 15 Jun 2026 12:00:00 GMT' \
'https://web.archive.org/web/20260615/https://example.com/'

Ответ:

HTTP/1.1 302 Found
Location: https://web.archive.org/web/20260601120000/https://example.com/
Memento-Datetime: Mon, 01 Jun 2026 12:00:00 GMT
Link: <https://example.com/>; rel="original"

Альтернативные TimeGate'ы​

TimeGateЭндпойнтПокрытие
Internet Archivehttps://web.archive.org/web/<ts>/<url>Глобальное
Archive Todayhttps://archive.ph/newest/<url>Глобальное
Library of Congresshttps://webarchive.loc.gov/all/<url>США
UK Web Archivehttps://www.webarchive.org.uk/wayback/archive/<url>Великобритания
Bibliothèque nationale de Francehttps://web.archive.bnf.fr/<url>Франция
Королевская библиотека Данииhttp://web.archive.kb.dk/<url>Дания

TimeMap — все снимки URL​

TimeMap возвращает все известные Memento для Original:

# В link-format
curl -H 'Accept: application/link-format' \
'https://web.archive.org/web/timemap/link/https://example.com/'

Ответ:

<https://web.archive.org/web/20240101120000/https://example.com/>; rel="memento"; datetime="Mon, 01 Jan 2024 ...",
<https://web.archive.org/web/20250101120000/https://example.com/>; rel="memento"; datetime="Wed, 01 Jan 2025 ...",
<https://web.archive.org/web/20260101120000/https://example.com/>; rel="memento"; datetime="Thu, 01 Jan 2026 ...",
<https://web.archive.org/web/https://example.com/>; rel="original"

В JSON-формате через API:

curl 'https://web.archive.org/web/timemap/json/https://example.com/' | jq .
{
"mementos": {
"first": {"datetime": "20240101...", "uri": "https://web.archive.org/web/2024..."},
"last": {"datetime": "20260101...", "uri": "https://web.archive.org/web/2026..."},
"list": {"memento": [...]}
}
}

Memento Aggregator — федеративный поиск​

Memento Aggregator — сервис, который отправляет запрос во все поддерживающие Memento архивы и возвращает объединённый результат. Для архивиста — способ за один запрос проверить, в каких архивах мира есть нужная страница.

JSON API​

# Все снимки URL на 2026-01-01 во всех архивах
curl 'https://timetravel.mementoweb.org/api/json/20260101/https://example.com/'

Ответ:

{
"mementos": {
"first": {"datetime": "...", "uri": "https://..."},
"last": {"datetime": "...", "uri": "https://..."},
"list": {
"memento": [
"https://web.archive.org/web/2024...",
"https://archive.ph/2025-...",
"https://webarchive.loc.gov/all/..."
]
}
}
}
# Список URL всех архивов, в которых есть страница
curl -H 'Accept: application/link-format' \
'https://timetravel.mementoweb.org/api/link/20260101/https://example.com/'

Расширения Memento​

Memento Pattern​

Для случая, когда URL сменился, но это «новая версия» старой страницы. Используется заголовок Memento-Pattern или Link: rel="pattern". Wayback Machine поддерживает для некоторых сайтов.

Memento Datetime Format​

Дата указывается в формате RFC 7089:

Mon, 01 Jun 2026 12:00:00 GMT     # HTTP-формат
2026-06-01T12:00:00Z # ISO-8601

TimeBundle​

TimeBundle — дополнение, позволяющее запросить несколько URL одновременно. Редко реализовано; обычно не требуется.

Программные обёртки​

Python: requests + ручная обработка​

import requests
from urllib.parse import quote

def memento_for(url: str, ts: str = None) -> str | None:
"""Вернуть URL ближайшего Memento или None, если не найдено."""
headers = {}
if ts:
headers["Accept-Datetime"] = f"{ts} GMT"
r = requests.get(
f"https://web.archive.org/web/{quote(url, safe='')}",
headers=headers,
allow_redirects=False,
timeout=30,
)
if r.status_code in (302, 200):
loc = r.headers.get("Location")
if loc:
return loc
return None


def time_map(url: str) -> list[str]:
"""Список URL всех Memento для данного URL."""
r = requests.get(
f"https://web.archive.org/web/timemap/json/{quote(url, safe='')}",
timeout=60,
)
data = r.json()
return [m["uri"] for m in data["mementos"]["list"]["memento"]]


print(memento_for("https://example.com/", "20260615"))
print(len(time_map("https://example.com/")), "снимков")

Питон-библиотека waybackpy​

pip install waybackpy
from waybackpy import WaybackMachine

wm = WaybackMachine("https://example.com/")

# Ближайший снимок к 2026-06-15
snap = wm.near(time="2026-06-15")
print(snap.url, snap.timestamp)

# Все снимки за последние 5 лет
for snap in wm.snapshots(year_start=2021, year_end=2026):
print(snap.url, snap.timestamp)

Расширения браузера и плагины​

ИнструментТипЧто делает
MinkРасширение ChromeПри просмотре страницы показывает панель со снимками из Memento Aggregator
PastPageРасширение Chrome/FirefoxЕсли страница недоступна, ищет её в архивах автоматически
Zotero Robust LinksРасширение ZoteroПри цитировании добавляет ссылку на Memento
Rescue Time MachineСервисПодбирает TimeGate автоматически

Пример PastPage в действии: пользователь нажимает «View archived page» → расширение спрашивает Memento Aggregator → если найден снимок, открывает его.

Реализации серверной части​

АрхивПоддержка MementoЭндпойнт
Internet Archive✅web.archive.org/web/<ts>/<url>
pywb✅<collection>/memento/<url>
OpenWayback⚠️ Частично<collection>/<ts>/<url>
SolrWayback✅встроенный proxy
Conifer✅локальный proxy

Подробности о настройке серверной части — pywb (раздел Memento API).

Когда использовать Memento​

✅ Подходит:

  • Дать пользователю ссылку на «архивную версию» без ручного перебора дат.
  • Программно проверять, в каких архивах мира есть URL.
  • В скриптах автоматически выбирать ближайший снимок для цитирования.
  • В браузерных расширениях для автоматического восстановления 404-х страниц.
  • В академических публикациях — Memento-ссылка принимается наравне с Perma.cc.

❌ Не подходит:

  • Полнотекстовый поиск по содержимому — только метаданные URL.
  • Свежие страницы (ещё не заархивированные) — Memento не сохраняет, а только находит.
  • Закрытые/приватные архивы — нужна отдельная аутентификация.

Ресурсы​

Связанные материалы​

  • Wayback Machine API — практический справочник API Wayback Machine.
  • pywb — Python-сервер с поддержкой Memento.
  • Internet Archive — основная реализация Memento.
  • ReplayWeb.page — клиентский плеер (Memento-агент).
  • FAQ — ответы на частые вопросы об архивации.