Ensimmäinen vakaa julkaisu apuohjelmasta GNU-verkkosisällön lataamiseen Wget2

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

Lisää kommentti