From 9a24f9bf78dd863bc3ff9ad6cab171d1e7427b34 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Sun, 10 Jul 2016 19:48:05 +0300 Subject: [PATCH] =?utf8?q?WARC=20proxy=20=D0=BD=D0=B0=20Go?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Собираюсь написать на 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-сессии. -- 2.50.0