Etter tre og et halvt år med utvikling har den første stabile utgivelsen av GNU Wget2-prosjektet blitt presentert, og utviklet en fullstendig redesignet versjon av programmet for å automatisere rekursiv nedlasting av GNU Wget-innhold. GNU Wget2 ble designet og omskrevet fra bunnen av og er kjent for å flytte den grunnleggende funksjonaliteten til en webklient inn i libwget-biblioteket, som kan brukes separat i applikasjoner. Verktøyet er lisensiert under GPLv3+, og biblioteket er lisensiert under LGPLv3+.
I stedet for gradvis å omarbeide den eksisterende kodebasen, ble det besluttet å gjøre om alt fra bunnen av og etablere en egen Wget2-gren for å implementere ideer for restrukturering, øke funksjonaliteten og gjøre endringer som bryter kompatibiliteten. Med unntak av deprecieringen av FTP-protokollen og WARC-formatet, kan wget2 fungere som en transparent erstatning for det klassiske wget-verktøyet i de fleste situasjoner.
Når det er sagt, har wget2 noen dokumenterte forskjeller i oppførsel, gir omtrent 30 tilleggsalternativer, og slutter å støtte flere dusin alternativer. Inkludert behandling av alternativer som "-spør-passord", "-header", "-ekskluder-kataloger", "-ftp*", "-warc*", "-limit-rate", "-relative" har vært stoppet " og "--unlink".
Viktige innovasjoner inkluderer:
- Flytter funksjonalitet til libwget-biblioteket.
- Overgang til flertrådsarkitektur.
- Evne til å etablere flere forbindelser parallelt og laste ned til flere tråder. Det er også mulig å parallellisere nedlastingen av en fil delt inn i blokker ved å bruke alternativet "-chunk-size".
- HTTP/2-protokollstøtte.
- Bruk If-Modified-Since HTTP-overskriften for å laste ned kun de modifiserte dataene.
- Bytt til å bruke eksterne båndbreddebegrensere som trickle.
- Støtte for Accept-Encoding header, komprimert dataoverføring og brotli, zstd, lzip, gzip, deflate, lzma og bzip2 komprimeringsalgoritmer.
- Støtte for TLS 1.3, OCSP (Online Certificate Status Protocol) for kontroll av tilbakekalte sertifikater, HSTS (HTTP Strict Transport Security) mekanisme for å tvinge omdirigering til HTTPS og HPKP (HTTP Public Key Pinning) for sertifikatbinding.
- Evne til å bruke GnuTLS, WolfSSL og OpenSSL som backends for TLS.
- Støtte for rask åpning av TCP-forbindelser (TCP FastOpen).
- Innebygd Metalink-formatstøtte.
- Støtte for internasjonaliserte domenenavn (IDNA2008).
- Muligheten til å jobbe gjennom flere proxy-servere samtidig (en strøm vil bli lastet gjennom en proxy, og den andre gjennom en annen).
- Innebygd støtte for nyhetsfeeder i Atom- og RSS-formater (for eksempel for skanning og nedlasting av lenker). RSS/Atom-data kan lastes ned fra en lokal fil eller over nettverket.
- Støtte for å trekke ut nettadresser fra nettkart. Tilgjengelighet av parsere for å trekke ut lenker fra CSS- og XML-filer.
- Støtte for 'inkluder'-direktivet i konfigurasjonsfiler og distribusjon av innstillinger på tvers av flere filer (/etc/wget/conf.d/*.conf).
- Innebygd DNS-spørringsbufringsmekanisme.
- Mulighet for omkoding av innhold ved å endre dokumentkodingen.
- Regnskap for "robots.txt"-filen under rekursive nedlastinger.
- Pålitelig skrivemodus med fsync()-kall etter lagring av data.
- Muligheten til å gjenoppta avbrutte TLS-økter, samt bufre og lagre TLS-sesjonsparametere til en fil.
- "--input-file-"-modus for å laste nettadresser som kommer gjennom standardinndatastrømmen.
- Kontrollere omfanget av informasjonskapselen mot katalogen over offentlige domene-suffikser (Public Suffix List) for å isolere fra hverandre forskjellige nettsteder som er vert i samme andrenivådomene (for eksempel "a.github.io" og "b.github. io").
- Støtter nedlasting av ICEcast/SHOUTcast-streaming.
Kilde: opennet.ru