Po tri a pol roku vývoja bola predstavená prvá stabilná verzia projektu GNU Wget2, ktorá vyvinula úplne prepracovanú verziu programu na automatizáciu rekurzívneho sťahovania obsahu GNU Wget. GNU Wget2 bol navrhnutý a prepísaný od začiatku a je pozoruhodný tým, že presunul základné funkcie webového klienta do knižnice libwget, ktorú je možné použiť samostatne v aplikáciách. Pomôcka je licencovaná pod GPLv3+ a knižnica je licencovaná pod LGPLv3+.
Namiesto postupného prepracovania existujúcej kódovej základne bolo rozhodnuté prerobiť všetko od začiatku a založiť samostatnú pobočku Wget2 na implementáciu nápadov na reštrukturalizáciu, zvýšenie funkčnosti a vykonanie zmien, ktoré narušia kompatibilitu. S výnimkou ukončenia podpory FTP protokolu a formátu WARC môže wget2 vo väčšine situácií fungovať ako transparentná náhrada klasickej wget utility.
Ako už bolo povedané, wget2 má niektoré zdokumentované rozdiely v správaní, poskytuje asi 30 ďalších možností a prestáva podporovať niekoľko desiatok možností. Vrátane spracovania takých možností ako „-ask-password“, „-header“, „-exclude-directories“, „-ftp*“, „-warc*“, „-limit-rate“, „-relative“ bolo zastavené " a "--unlink".
Medzi kľúčové inovácie patrí:
- Presun funkčnosti do knižnice libwget.
- Prechod na viacvláknovú architektúru.
- Schopnosť vytvoriť viacero pripojení paralelne a stiahnuť do viacerých vlákien. Je tiež možné paralelizovať sťahovanie jedného súboru rozdeleného do blokov pomocou možnosti „-chunk-size“.
- Podpora protokolu HTTP/2.
- Ak chcete stiahnuť iba upravené údaje, použite hlavičku HTTP If-Modified-Since.
- Prepnite na používanie externých obmedzovačov šírky pásma, ako je napr.
- Podpora hlavičky Accept-Encoding, komprimovaného prenosu údajov a kompresných algoritmov brotli, zstd, lzip, gzip, deflate, lzma a bzip2.
- Podpora TLS 1.3, OCSP (Online Certificate Status Protocol) na kontrolu zrušených certifikátov, mechanizmus HSTS (HTTP Strict Transport Security) na vynútenie presmerovania na HTTPS a HPKP (HTTP Public Key Pinning) na viazanie certifikátov.
- Schopnosť používať GnuTLS, WolfSSL a OpenSSL ako backendy pre TLS.
- Podpora rýchleho otvárania TCP spojení (TCP FastOpen).
- Zabudovaná podpora formátu Metalink.
- Podpora pre internacionalizované názvy domén (IDNA2008).
- Schopnosť súčasne pracovať cez niekoľko proxy serverov (jeden stream sa načíta cez jeden proxy a druhý cez iný).
- Zabudovaná podpora pre spravodajské kanály vo formátoch Atom a RSS (napríklad na skenovanie a sťahovanie odkazov). Údaje RSS/Atom je možné stiahnuť z lokálneho súboru alebo cez sieť.
- Podpora extrahovania adries URL zo súborov Sitemap. Dostupnosť syntaktických analyzátorov na extrahovanie odkazov zo súborov CSS a XML.
- Podpora direktívy 'include' v konfiguračných súboroch a distribúcia nastavení do niekoľkých súborov (/etc/wget/conf.d/*.conf).
- Vstavaný mechanizmus ukladania DNS dotazov do vyrovnávacej pamäte.
- Možnosť prekódovania obsahu zmenou kódovania dokumentu.
- Účtovanie súboru „robots.txt“ počas rekurzívneho sťahovania.
- Spoľahlivý režim zápisu s volaním fsync() po uložení údajov.
- Schopnosť obnoviť prerušené relácie TLS, ako aj ukladať parametre relácie TLS do vyrovnávacej pamäte a ukladať ich do súboru.
- Režim "--input-file-" na načítanie adries URL prichádzajúcich cez štandardný vstupný tok.
- Kontrola rozsahu súboru cookie v porovnaní s adresárom prípon verejnej domény (Zoznam verejných prípon), aby sa navzájom izolovali rôzne lokality hosťované v rovnakej doméne druhej úrovne (napríklad „a.github.io“ a „b.github. io”).
- Podporuje sťahovanie streamovania ICEcast/SHOUTcast.
Zdroj: opennet.ru