Die erste stabile Version des Tools zum Herunterladen von Web-Inhalten GNU Wget2

Nach dreieinhalb Jahren Entwicklung wurde die erste stabile Version des GNU Wget2-Projekts vorgestellt, das eine vollstĂ€ndig ĂŒberarbeitete Version des Programms zur Automatisierung des rekursiven Herunterladens von Inhalten GNU Wget weiterentwickelt. GNU Wget2 wurde von Grund auf neu konzipiert und programmiert und zeichnet sich dadurch aus, dass die grundlegende FunktionalitĂ€t des Web-Clients in die Bibliothek libwget ausgelagert wurde, die unabhĂ€ngig in Anwendungen verwendet werden kann. Das Tool wird unter der Lizenz GPLv3+ bereitgestellt, die Bibliothek unter LGPLv3+.

Anstatt die bestehende Codebasis schrittweise zu ĂŒberarbeiten, wurde beschlossen, alles von Grund auf neu zu erstellen und einen separaten Branch Wget2 fĂŒr die Umsetzung von Ideen zur Umstrukturierung, Erweiterung der FunktionalitĂ€t und zur EinfĂŒhrung von inkompatiblen Änderungen zu grĂŒnden. Mit Ausnahme der Einstellung der UnterstĂŒtzung fĂŒr das FTP-Protokoll und das WARC-Format kann wget2 in den meisten Situationen als transparenter Ersatz fĂŒr das klassische Tool wget fungieren.

Dabei weist wget2 einige dokumentierte Unterschiede im Verhalten auf, bietet etwa 30 zusĂ€tzliche Optionen und stellt die UnterstĂŒtzung mehrerer Dutzend Optionen ein. Dazu gehört die Einstellung der Verarbeitung solcher Optionen wie „—ask-password“, „—header“, „—exclude-directories“, „—ftp*“, „—warc*“, „—limit-rate“, „—relative“ und „—unlink“.

Zu den wichtigsten Neuerungen gehören:

  • Auslagerung der FunktionalitĂ€t in die Bibliothek libwget.
  • Übergang zu einer mehrthreadigen Architektur.
  • Möglichkeit der parallelen Einrichtung mehrerer Verbindungen und des Herunterladens in mehreren Streams. Es ist auch möglich, das Herunterladen einer Datei mithilfe der Option „—chunk-size“ in Blöcke aufzuteilen und parallel durchzufĂŒhren.
  • UnterstĂŒtzung des Protokolls HTTP/2.
  • Verwendung des HTTP-Headers If-Modified-Since, um nur geĂ€nderte Daten herunterzuladen.
  • Wechsel zur Nutzung Ă€ußerer Bandbreitenbegrenzer wie Trickle.
  • UnterstĂŒtzung des Headers Accept-Encoding, Übertragung von Daten in komprimierter Form und der Komprimierungsalgorithmen Brotli, zstd, lzip, gzip, deflate, lzma und bzip2.
  • UnterstĂŒtzung fĂŒr TLS 1.3, das OCSP-Protokoll (Online Certificate Status Protocol) zur ÜberprĂŒfung zurĂŒckgezogener Zertifikate, den HSTS-Mechanismus (HTTP Strict Transport Security) zur erzwungenen Umleitung auf HTTPS und HPKP (HTTP Public Key Pinning) zur Bindung von Zertifikaten.
  • Möglichkeit der Verwendung von GnuTLS, WolfSSL und OpenSSL als Backends fĂŒr TLS.
  • UnterstĂŒtzung des Modus zum schnellen Öffnen von TCP-Verbindungen (TCP FastOpen).
  • Eingebaute UnterstĂŒtzung fĂŒr das Metalink-Format.
  • UnterstĂŒtzung fĂŒr Internationalisierung Domainnamen (IDNA2008).
  • Die Möglichkeit, gleichzeitig ĂŒber mehrere Proxys zu arbeiten -Server (eine Verbindung wird ĂŒber einen Proxy geladen, die zweite ĂŒber einen anderen).
  • Eingebaute UnterstĂŒtzung fĂŒr Nachrichtenströme in den Formaten Atom und RSS (zum Beispiel zum Scannen und Laden von Links). RSS/Atom-Daten können aus einer lokalen Datei oder ĂŒber das Netzwerk geladen werden.
  • UnterstĂŒtzung zum Extrahieren von URLs aus Sitemap-Dateien. VerfĂŒgbarkeit von Parsern zum Extrahieren von Links aus CSS- und XML-Dateien.
  • UnterstĂŒtzung der 'include'-Direktive in Konfigurationsdateien und Verteilung von Einstellungen auf mehrere Dateien (/etc/wget/conf.d/*.conf).
  • Eingebauter Cache-Mechanismus fĂŒr DNS-Anfragen.
  • Die Möglichkeit, den Inhalt mit einer Änderung der Dokumentkodierung neu zu kodieren.
  • BerĂŒcksichtigung der Datei „robots.txt“ bei rekursiven Downloads.
  • Sichere Schreibweise mit Aufruf von fsync() nach dem Speichern von Daten.
  • Die Möglichkeit, unterbrochene TLS-Sitzungen wieder aufzunehmen sowie TLS-Sitzungsparameter zu cachen und in einer Datei zu speichern.
  • Modus „—input-file —“ zum Laden von URLs, die ĂŒber den Standard-Eingabestrom eingehen.
  • ÜberprĂŒfung des Geltungsbereichs von Cookies anhand des Verzeichnisses öffentlicher Domain-Endungen (Public Suffix List), um verschiedene Websites, die unter einer zweiten Ebene-Domain gehostet werden, voneinander zu isolieren (z. B. „a.github.io“ und „b.github.io“).
  • UnterstĂŒtzung fĂŒr das Laden von Streaming-Inhalten im Format ICEcast/SHOUTcast.

Quelle: opennet.ru

60GB SSD 8Gb DDR4