[О блоге] [наверх] [пред] [2016-07-10 19:48:05+03:00] [9a24f9bf78dd863bc3ff9ad6cab171d1e7427b34]
Темы: [go]

WARC proxy на Go

Собираюсь написать на Go прокси для просмотра WARC файлов. Так как с
Интернетом будут большие пребольшие проблемы (хотя они уже имеются с
постоянным блокированием CDN-ов, Github-ов и прочим), то актуальность
air-gaped режима передачи данных всё более актуальна.

С сохранением/передачей/просмотром одного HTML/JPEG/PDF/whatever файла
проблем не возникает. А вот как быть с кучей связанных между собой
документов? То есть например зеркалом сайта? Archive Team используют ISO
стандарт де-факто для архивирования Web-а: WARC (Web ARChive) формат. Он
очень простой и даже читается глазами: HTTP-like WARC заголовок, а
дальше сконкатенированные последовательности HTTP запроса/ответа. С
некоторой версии даже GNU Wget стал в состоянии делать подобные файлы.

То есть стандарт, вполне себе неплохой, уже даже де-факто для
петабайтных объёмов (archive.org), имеется. Обычные GNU Wget-ы отлично
умеют делать зеркала сайтов в подобном выводе.

А вот для просмотра я откопал пока только warc-proxy: https://github.com/alard/warc-proxy
Это Python HTTP-proxy написанный на Tornado с интерфейсом требующим
JavaScript. Всё перечисленное мне в нём и не нравится, хотя в целом оно
работает. Возьмусь переписать это как-нибудь покрасивше на Go.

WARC куда удобнее чем непонятно как созданные/сохранённые директории с
HTML/whatever документами в архиве. А тут один файлик внутри которого
прям фактически сохранённые HTTP-сессии.

    [оставить комментарий]