Kolmen ja puolen vuoden kehitystyön jälkeen GNU Wget2 -projektin ensimmäinen vakaa julkaisu on esitelty, ja se kehittää täysin uudelleen suunnitellun version ohjelmasta GNU Wget -sisällön rekursiivisen lataamisen automatisoimiseksi. GNU Wget2 suunniteltiin ja kirjoitettiin uudelleen tyhjästä, ja se on huomattava siitä, että se siirtää verkkoasiakkaan perustoiminnot libwget-kirjastoon, jota voidaan käyttää erikseen sovelluksissa. Apuohjelma on lisensoitu GPLv3+:lla ja kirjasto on lisensoitu LGPLv3+:lla.
Sen sijaan, että olemassa olevaa koodipohjaa olisi työstetty asteittain uudelleen, päätettiin tehdä kaikki alusta alkaen uudelleen ja perustaa erillinen Wget2-haara toteuttamaan ideoita rakenneuudistukseen, toiminnallisuuden lisäämiseen ja yhteensopivuutta rikkovien muutosten tekemiseen. Lukuun ottamatta FTP-protokollan ja WARC-formaatin vanhentumista, wget2 voi toimia läpinäkyvänä korvaajana perinteiselle wget-apuohjelmalle useimmissa tilanteissa.
Tästä huolimatta wget2:lla on joitain dokumentoituja eroja käyttäytymisessä, se tarjoaa noin 30 lisävaihtoehtoa ja lakkaa tukemasta useita kymmeniä vaihtoehtoja. Sellaisten vaihtoehtojen kuten "-ask-password", "-header", "-exclude-directories", "-ftp*", "-warc*", "-limit-rate", "-relative" käsittely on otettu mukaan. pysäytetty " ja "--unlink".
Keskeisiä innovaatioita ovat mm.
- Toimintojen siirtäminen libwget-kirjastoon.
- Siirtyminen monisäikeiseen arkkitehtuuriin.
- Mahdollisuus muodostaa useita yhteyksiä rinnakkain ja ladata useisiin säikeisiin. On myös mahdollista rinnastaa yhden lohkoihin jaetun tiedoston lataus käyttämällä "-chunk-size" -vaihtoehtoa.
- HTTP/2-protokollan tuki.
- Käytä If-Modified-Since HTTP-otsikkoa ladataksesi vain muokatut tiedot.
- Vaihda käyttämään ulkoisia kaistanleveyden rajoittimia, kuten trickle.
- Tuki Accept-Encoding-otsikoille, pakatulle tiedonsiirrolle ja brotli-, zstd-, lzip-, gzip-, deflate-, lzma- ja bzip2-pakkausalgoritmeille.
- Tuki TLS 1.3:lle, OCSP:lle (Online Certificate Status Protocol) peruutettujen varmenteiden tarkistamiseen, HSTS (HTTP Strict Transport Security) -mekanismille uudelleenohjauksen pakottamiseksi HTTPS:ään ja HPKP:lle (HTTP Public Key Pinning) varmenteiden sitomiseen.
- Mahdollisuus käyttää GnuTLS:ää, WolfSSL:ää ja OpenSSL:ää TLS:n taustaohjelmina.
- Tuki TCP-yhteyksien nopeaan avaamiseen (TCP FastOpen).
- Sisäänrakennettu Metalink-muototuki.
- Tuki kansainvälisille verkkotunnuksille (IDNA2008).
- Mahdollisuus työskennellä samanaikaisesti useiden välityspalvelinten kautta (yksi stream ladataan yhden välityspalvelimen kautta ja toinen toisen kautta).
- Sisäänrakennettu tuki Atom- ja RSS-muotoisille uutissyötteille (esimerkiksi linkkien skannaukseen ja lataamiseen). RSS/Atom-tiedot voidaan ladata paikallisesta tiedostosta tai verkon kautta.
- Tuki URL-osoitteiden poimimiselle sivustokartoista. Saatavilla jäsentimiä linkkien purkamiseen CSS- ja XML-tiedostoista.
- Tuki "include"-direktiiville asetustiedostoissa ja asetusten jakaminen useisiin tiedostoihin (/etc/wget/conf.d/*.conf).
- Sisäänrakennettu DNS-kyselyn välimuistimekanismi.
- Mahdollisuus koodata sisältöä vaihtamalla asiakirjan koodausta.
- Robots.txt-tiedoston huomioiminen rekursiivisten latausten aikana.
- Luotettava kirjoitustila fsync()-kutsulla tietojen tallennuksen jälkeen.
- Mahdollisuus jatkaa keskeytettyjä TLS-istuntoja sekä tallentaa TLS-istunnon parametrit välimuistiin ja tallentaa tiedostoon.
- "--input-file-" -tila normaalin syöttövirran kautta tulevien URL-osoitteiden lataamiseen.
- Evästeen laajuuden tarkistaminen julkisten päätteiden hakemistosta (Public Suffix List) eri sivustojen eristämiseksi toisistaan samassa toisen tason verkkotunnuksessa (esimerkiksi "a.github.io" ja "b.github. io”).
- Tukee ICEcast/SHOUTcast-suoratoiston lataamista.
Lähde: opennet.ru