První stabilní verze nástroje pro stahování webového obsahu GNU Wget2

Po třech a půl letech vývoje byla představena první stabilní verze projektu GNU Wget2, která vyvíjí zcela přepracovanou verzi programu pro automatizaci rekurzivního stahování obsahu GNU Wget. GNU Wget2 byl navržen a přepsán od nuly a je pozoruhodný tím, že přesunul základní funkcionalitu webového klienta do knihovny libwget, kterou lze v aplikacích používat samostatně. Nástroj je licencován pod licencí GPLv3+ a knihovna je licencována pod licencí LGPLv3+.

Místo postupného přepracování stávající kódové základny bylo rozhodnuto předělat vše od nuly a založit samostatnou pobočku Wget2, která by implementovala nápady na restrukturalizaci, zvýšení funkčnosti a provádění změn, které narušují kompatibilitu. S výjimkou ukončení podpory protokolu FTP a formátu WARC může wget2 ve většině situací fungovat jako transparentní náhrada za klasickou utilitu wget.

Jak již bylo řečeno, wget2 má některé zdokumentované rozdíly v chování, poskytuje asi 30 dalších možností a přestává podporovat několik desítek možností. Včetně zpracování takových možností jako „-ask-password“, „-header“, „-exclude-directories“, „-ftp*“, „-warc*“, „-limit-rate“, „-relative“ bylo zastaveno " a "--unlink".

Mezi klíčové inovace patří:

  • Přesouvání funkcí do knihovny libwget.
  • Přechod na vícevláknovou architekturu.
  • Schopnost vytvořit více připojení paralelně a stáhnout do více vláken. Je také možné paralelizovat stahování jednoho souboru rozděleného do bloků pomocí volby „-chunk-size“.
  • Podpora protokolu HTTP/2.
  • Použijte HTTP hlavičku If-Modified-Since ke stažení pouze upravených dat.
  • Přepněte na používání externích omezovačů šířky pásma, jako je trik.
  • Podpora hlavičky Accept-Encoding, komprimovaného přenosu dat a kompresních algoritmů brotli, zstd, lzip, gzip, deflate, lzma a bzip2.
  • Podpora TLS 1.3, OCSP (Online Certificate Status Protocol) pro kontrolu zrušených certifikátů, mechanismus HSTS (HTTP Strict Transport Security) pro vynucení přesměrování na HTTPS a HPKP (HTTP Public Key Pinning) pro vazbu certifikátu.
  • Schopnost používat GnuTLS, WolfSSL a OpenSSL jako backendy pro TLS.
  • Podpora rychlého otevírání TCP spojení (TCP FastOpen).
  • Vestavěná podpora formátu Metalink.
  • Podpora pro mezinárodní názvy domén (IDNA2008).
  • Schopnost současně pracovat přes několik proxy serverů (jeden stream bude načten přes jeden proxy a druhý přes jiný).
  • Vestavěná podpora pro zpravodajské kanály ve formátech Atom a RSS (například pro skenování a stahování odkazů). Data RSS/Atom lze stáhnout z místního souboru nebo přes síť.
  • Podpora pro extrahování adres URL ze souborů Sitemap. Dostupnost parserů pro extrahování odkazů ze souborů CSS a XML.
  • Podpora direktivy 'include' v konfiguračních souborech a distribuce nastavení do několika souborů (/etc/wget/conf.d/*.conf).
  • Vestavěný mechanismus mezipaměti dotazů DNS.
  • Možnost překódování obsahu změnou kódování dokumentu.
  • Zohlednění souboru „robots.txt“ během rekurzivního stahování.
  • Spolehlivý režim zápisu s voláním fsync() po uložení dat.
  • Schopnost obnovit přerušené relace TLS, stejně jako ukládat parametry relace TLS do mezipaměti a ukládat do souboru.
  • Režim "--input-file-" pro načítání adres URL přicházejících přes standardní vstupní proud.
  • Kontrola rozsahu souboru cookie proti adresáři přípon veřejné domény (seznam veřejných přípon), aby se navzájem izolovaly různé weby hostované ve stejné doméně druhé úrovně (například „a.github.io“ a „b.github. io”).
  • Podporuje stahování streamování ICEcast/SHOUTcast.

Zdroj: opennet.ru

Přidat komentář