ReCoder (recoder) wrote,
ReCoder
recoder

  • Mood:

Мементо

В процессе дизайна персонального архиватора обнаружил что существует достаточно официальный (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я не найдётся?", но как только начинаешь думать о децентрализации - сразу всплывает такое количество проблем, что всё желание думать дальше и пропадает. Поэтому наш девиз - каждый сам за себя!

Tags: internet, nexvs
Subscribe

Posts from This Journal “nexvs” Tag

  • Авто-архивирование ссылок

    В очередной раз наткнулся на битые внешние ссылки в своих блогах и решил начать разбираться с этой бедой, не дожидаясь идеального решения в…

  • Новости Архивации

    Цифровая тётка с косой нанесла очередной удар в спину: внезапно обнаружилось, что моя коллекция инфографики на vi.sualize.us накрылась…

  • Instant View

    Ален нови, ностра алис! Что означает — ежели один человек построил, другой завсегда разобрать может. © к/ф Формула Любви По мере того как…

  • Маленькая Тихая Интернет-Гавань

    Выкроил на неделе чутка свободного времени, пошерстил интернеты на предмет персональной системы архивации ссылок. Результаты неутешительные:…

  • Всё - тлен. Даже в интернетах.

    Отправился я недавно перечитать кой-чего из старого ЖЖ примерно десятилетней давности (да-да, я тот самый человек который перечитывает старые записи…

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments