# Web ARChive

Das Archivformat Web ARChive (WARC) spezifiziert ein Verfahren zum Kombinieren mehrerer digitaler Ressourcen in einer aggregierten Archivdatei mit zugehörigen Metadaten. Das WARC-Format ist eine Überarbeitung des ARC-Dateiformats des Internet Archive, das traditionell zum Speichern von „Webcrawls“ als Sequenzen von Inhaltsblöcken aus dem World Wide Web verwendet wird. Das WARC-Format verallgemeinert das ältere Format, um die Anforderungen von Archivierungsunternehmen für die Erfassung, den Zugriff und den Austausch besser zu unterstützen. Neben dem aktuell aufgezeichneten Primärinhalt berücksichtigt die Revision auch verwandte Sekundärinhalte, wie zugewiesene Metadaten.
Die Library of Congress verzeichnet das Format in ihrem Projekt „Sustainability of Digital Formats“.
WARC wird heute von den meisten nationalen Bibliothekssystemen als Standard für die Webarchivierung anerkannt. So nutzt es beispielsweise die Bayerische Staatsbibliothek in ihren Archivierungsprojekten und die Deutsche Nationalbibliothek empfiehlt es als Standard.

## Aufbau

Eine WARC-Datei besteht aus einem oder mehreren Records. Ein Record besteht dabei aus:
* Kopfzeile bzw. Header, in dem verpflichtende Metadatenfelder (unter anderem die URL, das Datum, Typ und Länge des Records) eingetragen werden.
* dem Content-Block, in dem der eigentliche Inhalt steht. Hier liegt im sogenannten "WARC record payload" die gespeicherte Ressource vor.
Im Standard werden acht verschiedene Record-Typen vordefiniert:
* warcinfo – Befindet sich in der Regel am Anfang der WARC-Datei. Der Record enthält allgemeine Informationen über die darauffolgenden Records, normalerweise also über die Datei selbst. Zu den Metadaten gehören u. a. Name und E-Mail-Adresse des Erstellers, außerdem Useragent, IP-Adresse, HTTP-Header und Software, die bei der Archivierung der Daten verwendet wurden.
* response – Enthält die vollständige Antwort (Response nach Client-Server-Modell) eines Webservers inklusiver ausführlicher Netzwerk- und Protokollinformationen. Folglich befinden sich in dessen Content-Blocks meist die zu speichernde Ressource.
* resource – Falls es nicht möglich oder nicht erwünscht ist, sämtliche Protokollinformationen mit zu speichern, ist ein Ressource-Record für die einfache Speicherung einer Ressource optimal.
* request – Gegenstück zum Response-Record. Enthält Anfrage und zugehörige Informationen, die zur Zeit des Crawls an den Webserver gesendet wurden.
* metadata – Beliebige Metadaten werden hier abgelegt. Fast immer beziehen sich diese auf einen anderen Record, welcher über die Felder WARC-Concurrent-To oder WARC-Refers-To.
* revisit – Wird typischerweise verwendet, falls ein schon archivierter Inhalt nochmals besucht wird. Dabei wird relativ zur schon archivierten Ressource nur ein gekürzter Content-Block gespeichert. Dadurch kann unnötige Redundanz vermieden und Speicherplatz gespart werden.
* conversion – Zweck eines Conversion-Records ist es, die Inhalte eines vorhandenen Records in einem anderen Format zu speichern.
* continuation – Der Continuation-Record (englisch für Fortsetzung) ermöglicht es, große Datenmengen über mehrere WARC-Dateien zu verteilen.
Zwar spezifiziert der WARC-Standard keine Kompression, jedoch kann diese ohne Probleme zur Reduzierung der Speichermenge verwendet werden. Empfohlen wird dabei vom IIPC das GZIP-Format. Deshalb findet man WARC-Dateien öfters mit der Dateiendung ".warc.gz" vor.

## Software

* Heritrix in Java
* wget (ab Version 1.14)
* StormCrawler
* Apache Nutch

## Onlinedienste

* replayweb.page zum Laden und Betrachten von WARC-Dateien
* webrecorder.io mit 5 GB kostenlosen Speicherplatz, von Rhizome.org
* Perma.cc 10 freie Links pro Monat und Benutzer, von der Harvard Law School Library (lil.law.harvard.edu)
* Webpreserver.com ist eine Browser-Erweiterung für Chrome