Három és fél éves fejlesztés után bemutatták a GNU Wget2 projekt első stabil kiadását, amely a program teljesen újratervezett változatát fejlesztette ki a GNU Wget tartalmak rekurzív letöltésének automatizálására. A GNU Wget2-t a semmiből tervezték és írták át, és figyelemre méltó, hogy a webes kliens alapvető funkcióit áthelyezte a libwget könyvtárba, amely az alkalmazásokban külön is használható. A segédprogram a GPLv3+, a könyvtár pedig az LGPLv3+ licenccel rendelkezik.
A meglévő kódbázis fokozatos átdolgozása helyett úgy döntöttek, hogy mindent a semmiből újra csinálnak, és külön Wget2-ágat hoznak létre, hogy megvalósítsák az átstrukturálásra, a funkcionalitás növelésére és a kompatibilitást megszakító változtatásokra vonatkozó ötleteket. Az FTP protokoll és a WARC formátum elavultsága kivételével a wget2 a legtöbb esetben a klasszikus wget segédprogram átlátszó helyettesítőjeként működhet.
Ennek ellenére a wget2 rendelkezik néhány dokumentált viselkedésbeli különbséggel, körülbelül 30 további lehetőséget biztosít, és nem támogat több tucat opciót. Beleértve az olyan opciók feldolgozását, mint a „-ask-password”, „-header”, „-exclude-directories”, „-ftp*”, „-warc*”, „-limit-rate”, „-relative” megállt " és "--unlink".
A legfontosabb újítások a következők:
- Funkciók áthelyezése a libwget könyvtárba.
- Áttérés a többszálú architektúrára.
- Lehetőség több kapcsolat létrehozására párhuzamosan és több szálra való letöltésre. Lehetőség van egy blokkra osztott fájl letöltésének párhuzamosítására is a „-chunk-size” opció használatával.
- HTTP/2 protokoll támogatás.
- Csak a módosított adatok letöltéséhez használja az If-Modified-Since HTTP fejlécet.
- Váltson külső sávszélesség-korlátozók használatára, például szivárgásra.
- Az Accept-Encoding fejléc, a tömörített adatátvitel, valamint a brotli, zstd, lzip, gzip, deflate, lzma és bzip2 tömörítési algoritmusok támogatása.
- TLS 1.3, OCSP (Online Certificate Status Protocol) támogatása a visszavont tanúsítványok ellenőrzéséhez, HSTS (HTTP Strict Transport Security) mechanizmus a HTTPS-re való átirányítás kényszerítésére és HPKP (HTTP nyilvános kulcs rögzítése) a tanúsítvány-összerendeléshez.
- Lehetőség a GnuTLS, a WolfSSL és az OpenSSL használatára TLS háttérként.
- TCP-kapcsolatok gyors megnyitásának támogatása (TCP FastOpen).
- Beépített Metalink formátum támogatás.
- Nemzetközi tartománynevek támogatása (IDNA2008).
- Több proxyszerveren keresztüli egyidejű munkavégzés képessége (az egyik adatfolyam az egyik proxyn, a második egy másikon keresztül töltődik be).
- Az Atom és RSS formátumú hírfolyamok beépített támogatása (például linkek beolvasásához és letöltéséhez). Az RSS/Atom adatok letölthetők helyi fájlból vagy a hálózaton keresztül.
- Támogatás az URL-ek webhelytérképekből történő kinyeréséhez. Elemzők elérhetősége a hivatkozások CSS- és XML-fájlokból történő kinyeréséhez.
- Az „include” direktíva támogatása a konfigurációs fájlokban és a beállítások elosztása több fájl között (/etc/wget/conf.d/*.conf).
- Beépített DNS-lekérdezés gyorsítótárazási mechanizmus.
- Lehetőség a tartalom átkódolására a dokumentumkódolás megváltoztatásával.
- A „robots.txt” fájl számítása a rekurzív letöltések során.
- Megbízható írási mód fsync() hívással az adatok mentése után.
- Lehetőség a megszakított TLS-munkamenetek folytatására, valamint a TLS-munkamenet paramétereinek gyorsítótárazására és fájlba mentésére.
- "--input-file-" mód a szabványos bemeneti adatfolyamon keresztül érkező URL-ek betöltéséhez.
- A Cookie hatókörének ellenőrzése a nyilvános utótagok könyvtárában (nyilvános utótagok listája), hogy elkülönítse egymástól az ugyanazon a második szintű domainben tárolt különböző webhelyeket (például „a.github.io” és „b.github. io”).
- Támogatja az ICEcast/SHOUTcast streaming letöltését.
Forrás: opennet.ru