Po třech a půl letech vývoje byl představen první stabilní release projektu GNU Wget2, který vyvíjí kompletně přepracovanou variantu programu pro automatizaci rekurzivního stahování obsahu GNU Wget. GNU Wget2 je navržen a přepsán od nuly a vyniká vydělením základní funkčnosti webového klienta do knihovny libwget, která může být samostatně využívána v aplikacích. Nástroj je dodáván pod licencí GPLv3+ a knihovna pod LGPLv3+.
Namísto postupného přepracování stávající kódové základny bylo rozhodnuto přepsat vše od nuly a založit samostatnou větev Wget2 pro realizaci nápadů na restrukturalizaci, rozšiřování funkčnosti a provádění změn narušujících kompatibilitu. Kromě ukončení podpory protokolu FTP a formátu WARC může wget2 v mnoha situacích fungovat jako průhledná náhrada klasického nástroje wget.
Přitom má wget2 některé zdokumentované rozdíly v chování, poskytuje přibližně 30 dalších možností a ukončuje podporu několika desítek voleb. Mezi ně byla vyřazena zpracování voleb jako „—ask-password“, „—header“, „—exclude-directories“, „—ftp*“, „—warc*“, „—limit-rate“, „—relative“ a „—unlink.“
Z klíčových novinek lze zmínit:
- Vydělení funkcionality do knihovny libwget.
- Přechod na vícerozměrnou architekturu.
- Možnost paralelní instalace několika připojení a stahování v několika vláknech. Mezi tyto funkce patří možnost paralelizace stahování jednoho souboru s dělením na bloky pomocí volby „—chunk-size.“
- Podpora protokolu HTTP/2.
- Použití HTTP záhlaví If-Modified-Since pro stahování pouze změněných dat.
- Přechod na využití externích limitérů propustnosti, jako je trickle.
- Podpora záhlaví Accept-Encoding, přenos dat ve zkomprimované podobě a algoritmů komprese brotli, zstd, lzip, gzip, deflate, lzma a bzip2.
- Podpora TLS 1.3, protokolu OCSP (Online Certificate Status Protocol) pro ověřování odvolaných certifikátů, mechanismu HSTS (HTTP Strict Transport Security) pro vynucení přesměrování na HTTPS a HPKP (HTTP Public Key Pinning) pro spojení certifikátů.
- Možnost použití GnuTLS, WolfSSL a OpenSSL jako backendů pro TLS.
- Podpora režimu rychlého otevírání TCP připojení (TCP FastOpen).
- Vestavěná podpora formátu Metalink.
- Podpora internacionalizovaných doménových jmen (IDNA2008).
- Možnost současného výběru několika proxy serverů -servery (jeden tok se bude načítat přes jeden proxy, druhý přes jiný).
- Vestavěná podpora pro zpravodajské kanály v formátech Atom a RSS (například pro skenování a stahování odkazů). Data RSS/Atom mohou být načítána z lokálního souboru nebo přes síť.
- Podpora pro extrakci URL z souborů Sitemap. K dispozici jsou parséry pro extrakci odkazů ze souborů CSS a XML.
- Podpora direktivy 'include' v konfiguračních souborech a distribuce nastavení do více souborů (/etc/wget/conf.d/*.conf).
- Vestavěný mechanismus pro kešování DNS dotazů.
- Možnost překódování obsahu při změně kódování dokumentu.
- Zohlednění souboru 'robots.txt' při rekurzivních stahováních.
- Režim spolehlivého zápisu se zavoláním fsync() po uložení dat.
- Možnost obnovení přerušených TLS sezení a také kešování a ukládání parametrů TLS sezení do souboru.
- Režim '--input-file --' pro stahování URL, které přicházejí přes standardní vstup.
- Kontrola oblasti platnosti Cookies podle katalogu veřejných suffixů domén (Public Suffix List) pro izolaci různých webů umístěných v jedné doméně druhé úrovně (například 'a.github.io' a 'b.github.io').
- Podpora pro stahování streamovaného vysílání ve formátu ICEcast / SHOUTcast.
Zdroj: opennet.ru
