Prima versiune stabilă a utilitarului pentru descărcarea conținutului web GNU Wget2

După trei ani și jumătate de dezvoltare, a fost prezentată prima lansare stabilă a proiectului GNU Wget2, dezvoltând o versiune complet reproiectată a programului pentru automatizarea descărcării recursive a conținutului GNU Wget. GNU Wget2 a fost proiectat și rescris de la zero și este remarcabil pentru mutarea funcționalității de bază a unui client web în biblioteca libwget, care poate fi folosită separat în aplicații. Utilitarul este licențiat conform GPLv3+, iar biblioteca este licențiată sub LGPLv3+.

În loc să se refacă treptat baza de cod existentă, s-a decis să se refacă totul de la zero și să se stabilească o ramură separată Wget2 pentru a implementa idei de restructurare, creșterea funcționalității și efectuarea de modificări care încalcă compatibilitatea. Cu excepția deprecierii protocolului FTP și a formatului WARC, wget2 poate acționa ca un înlocuitor transparent pentru utilitarul clasic wget în majoritatea situațiilor.

Acestea fiind spuse, wget2 are unele diferențe documentate de comportament, oferă aproximativ 30 de opțiuni suplimentare și nu mai acceptă câteva zeci de opțiuni. A fost inclusă procesarea unor opțiuni precum „-ask-password”, „-header”, „-exclude-directories”, „-ftp*”, „-warc*”, „-limit-rate”, „-relative” oprit „ și „--unlink”.

Inovațiile cheie includ:

  • Mutarea funcționalității în biblioteca libwget.
  • Trecerea la arhitectura multi-threaded.
  • Abilitatea de a stabili mai multe conexiuni în paralel și de a descărca în mai multe fire. De asemenea, este posibil să paralelizați descărcarea unui fișier împărțit în blocuri folosind opțiunea „-chunk-size”.
  • Suport protocol HTTP/2.
  • Utilizați antetul HTTP If-Modified-Since pentru a descărca numai datele modificate.
  • Treceți la utilizarea limitatoarelor externe de lățime de bandă, cum ar fi trickle.
  • Suport pentru antetul Accept-Encoding, transferul de date comprimate și algoritmii de compresie brotli, zstd, lzip, gzip, deflate, lzma și bzip2.
  • Suport pentru TLS 1.3, OCSP (Online Certificate Status Protocol) pentru verificarea certificatelor revocate, mecanism HSTS (HTTP Strict Transport Security) pentru forțarea redirecționării către HTTPS și HPKP (HTTP Public Key Pinning) pentru legarea certificatelor.
  • Abilitatea de a utiliza GnuTLS, WolfSSL și OpenSSL ca backend pentru TLS.
  • Suport pentru deschiderea rapidă a conexiunilor TCP (TCP FastOpen).
  • Suport încorporat în format Metalink.
  • Suport pentru nume de domenii internaționalizate (IDNA2008).
  • Abilitatea de a lucra simultan prin mai multe servere proxy (un flux va fi încărcat printr-un proxy, iar al doilea printr-un altul).
  • Suport încorporat pentru fluxuri de știri în formatele Atom și RSS (de exemplu, pentru scanarea și descărcarea link-urilor). Datele RSS/Atom pot fi descărcate dintr-un fișier local sau prin rețea.
  • Asistență pentru extragerea adreselor URL din Sitemaps. Disponibilitatea parsoarelor pentru extragerea legăturilor din fișierele CSS și XML.
  • Suport pentru directiva „include” în fișierele de configurare și distribuția setărilor în mai multe fișiere (/etc/wget/conf.d/*.conf).
  • Mecanism de stocare în cache a interogărilor DNS încorporat.
  • Posibilitatea de recodificare a conținutului prin modificarea codificării documentului.
  • Contabilizarea fișierului „robots.txt” în timpul descărcărilor recursive.
  • Mod de scriere fiabil cu apel fsync() după salvarea datelor.
  • Capacitatea de a relua sesiunile TLS întrerupte, precum și de a stoca în cache și de a salva parametrii de sesiune TLS într-un fișier.
  • Modul „--input-file-” pentru încărcarea adreselor URL care vin prin fluxul de intrare standard.
  • Verificarea domeniului cookie-ului cu directorul de sufixe din domeniul public (Public Sufix List) pentru a izola unele de altele diferite site-uri găzduite în același domeniu de nivel al doilea (de exemplu, „a.github.io” și „b.github. io”).
  • Acceptă descărcarea în flux ICEcast/SHOUTcast.

Sursa: opennet.ru

Adauga un comentariu