Po troch a pol rokoch vývoja bol predstavený prvý stabilný release projektu GNU Wget2, ktorý vyvíja úplne prepracovanú verziu programu na automatizáciu rekurzívneho sťahovania obsahu GNU Wget. GNU Wget2 je navrhnutý a preprogramovaný od nuly a je pozoruhodný presunom základnej funkčnosti webového klienta do knižnice libwget, ktorá sa môže samostatne používať v aplikáciách. Nástroj je dodávaný pod licenciou GPLv3+, zatiaľ čo knižnica pod LGPLv3+.
Namiesto postupnej prepracovania existujúcej kódovej základne sa rozhodlo prebudovať všetko od nuly a založiť samostatnú vetvu Wget2 pre realizáciu myšlienok na restrukturalizáciu, zvyšovanie funkčnosti a zavádzanie zmien, ktoré narušujú kompatibilitu. S výnimkou ukončenia podpory protokolu FTP a formátu WARC môže wget2 vo väčšine situácií pôsobiť ako transparentná náhrada klasického nástroja wget.
Wget2 má pritom niektoré zdokumentované rozdiely v správaní, poskytuje približne 30 dodatočných možností a ukončuje podporu niekoľkých desiatok možností. Medzi iným bola pozastavená podpora takýchto možností ako „—ask-password“, „—header“, „—exclude-directories“, „—ftp*“, „—warc*“, „—limit-rate“, „—relative“ a „—unlink“.
Medzi kľúčové novinky patrí:
- Presun funkčnosti do knižnice libwget.
- Prechod na viaczásobnú architektúru.
- Možnosť paralelného vytvárania spojení a sťahovania vo viacerých prúdoch. Je taktiež možné paralelizovať sťahovanie jedného súboru rozdelením na bloky pomocou možnosti „—chunk-size“.
- Podpora protokolu HTTP/2.
- Použitie HTTP hlavičky If-Modified-Since na sťahovanie iba zmenených dát.
- Prechod na aplikáciu externých obmedzovačov priepustnosti, ako je trickle.
- Podpora hlavičky Accept-Encoding, prenos dát v komprimovanej forme a algoritmov kompresie brotli, zstd, lzip, gzip, deflate, lzma a bzip2.
- Podpora TLS 1.3, protokolu OCSP (Online Certificate Status Protocol) na overenie odobratých certifikátov, mechanizmu HSTS (HTTP Strict Transport Security) na vynútené presmerovanie na HTTPS a HPKP (HTTP Public Key Pinning) na viazanie certifikátov.
- Možnosť využitia GnuTLS, WolfSSL a OpenSSL ako backendov pre TLS.
- Podpora režimu rýchlej otvorenia TCP spojení (TCP FastOpen).
- Zabudovaná podpora formátu Metalink.
- Podpora internacionalizovaných doménových mien (IDNA2008).
- Možnosť súčasnej práce cez niekoľko proxy-serverov (jeden tok sa bude sťahovať cez jeden proxy, druhý cez druhý).
- Vstavaná podpora novinových fluxov vo formátoch Atom a RSS (napríklad pre skenovanie a sťahovanie odkazov). Údaje RSS/Atom môžu byť sťahované z lokálneho súboru alebo cez sieť.
- Podpora extrakcie URL z súborov Sitemap. K dispozícii sú parséry na extrakciu odkazov zo súborov CSS a XML.
- Podpora direktívy 'include' v konfiguračných súboroch a rozdeľovanie nastavení do viacerých súborov (/etc/wget/conf.d/*.conf).
- Vstavaný mechanizmus cacheovania DNS požiadaviek.
- Možnosť prekodovania obsahu so zmenou kódovania dokumentu.
- Zohľadnenie súboru 'robots.txt' pri rekurzívnych sťahovaniach.
- Režim spoľahlivého zápisu s volaním fsync() po uložení dát.
- Možnosť obnovenia prerušených TLS relácií, ako aj cacheovania a ukladania parametrov TLS relácie do súboru.
- Režim '--input-file --' pre sťahovanie URL, ktoré prichádzajú cez štandardný vstupný tok.
- Kontrola oblasti platnosti Cookie na základe katalógu verejných suffixov domén (Public Suffix List) na izoláciu rôznych stránok hostovaných na rovnakom druhom stupni domény (napríklad 'a.github.io' a 'b.github.io').
- Podpora sťahovania streamovaného vysielania vo formáte ICEcast/SHOUTcast.
Zdroj: opennet.ru
