recoder: (masked)
[personal profile] recoder

В процессе дизайна персонального архиватора обнаружил что существует достаточно официальный (RFC 7089) протокол для архивации веб-ресурсов под названием Memento. Авторы протокола пошли оригинальным путём и просто расширили стандартную процедуру "content negotiation" ещё одним измерением - временем!

В схеме Memento клиент может сделать HEAD-запрос к ресурсу (на сервере, поддерживающем эту схему) с указанием заголовка "Accept-Datetime: {date}" и сервер отвечает на такой запрос стандартным 200 OK с указанием места где живёт "TimeGate" - сервер архивации, и выглядит это как "Link: {uri}, rel=timegate". После этого можно обратиться к таймгейт-серверу и он выдаст 302 Found туда где уже и выдадут запрошенную архивную копию.

На основе этого протокола придумали решение моей проблемы протухающих ссылок - Robust Links. Тэг ссылки просто расширяется дополнительными атрибутами data-versiondate и data-versionurl, так что ссылки выглядят примерно так:

<a href="http://thekeepers.org/" data-versionurl="http://archive.today/DTt8f" data-versiondate="2014-11-01">http://thekeepers.org/</a>
// rendered as http://thekeepers.org/

Такие декорированные ссылки небольшим скриптом можно превратить в мини-менюшки выбора конкретной сохранённой версии документа по ссылке. К сожалению, обычному бложеку на LJ/DW такая техника не подходит потому что сторонний скрипт так легко не подцепить. Поэтому Memento-сервисы обычно поддерживают запросы вида GET /{date}/{resource uri}, однако стандартизация сюда ещё не добралась и каждый сервис лепит что-то своё.

Увы, серьёзных сервисов поддерживающих Memento, не так уж и много: Wayback Machine, Archive Today, Perma.cc. Wayback Machine примечательна своим возрастом - она архивирует интернет с 2001 года (я там даже нашёл свой старый хомяк из прошлого тысячелетия!). Archive Today поражает качеством архивирования - видимо они загружают страницы в headless browser и сохраняют получившееся состояние. Однако совершенно непонятно кому принадлежит этот сервис и соответственно неясно сколько он ещё протянет. Perma.cc пилится Гарвардским университетом, так что стоит предположить что он переживёт все подобные сервисы, что и является его главным преимуществом.

Чувствую, в своём хабе-архивариусе надо будет запилить поддержку Memento. Незачем велосипеды изобретать. Было бы совсем круто сделать этот протокол распределённым, чтобы каждый такой сервачок мог спросить у соседних сервачков "а у вас такого URLя не найдётся?", но как только начинаешь думать о децентрализации - сразу всплывает такое количество проблем, что всё желание думать дальше и пропадает. Поэтому наш девиз - каждый сам за себя!

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

December 2024

S M T W T F S
1234567
891011121314
15161718192021
22232425 262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 24th, 2025 12:51 pm
Powered by Dreamwidth Studios