La prima versione stabile dell'utilità per il download di contenuti web GNU Wget2

Dopo tre anni e mezzo di sviluppo, è stata presentata la prima release stabile del progetto GNU Wget2, sviluppando una versione completamente riprogettata del programma per automatizzare il download ricorsivo dei contenuti GNU Wget. GNU Wget2 è stato progettato e riscritto da zero e si distingue per aver spostato le funzionalità di base di un client Web nella libreria libwget, che può essere utilizzata separatamente nelle applicazioni. L'utilità è concessa in licenza con GPLv3+ e la libreria è concessa in licenza con LGPLv3+.

Invece di rielaborare gradualmente la base di codice esistente, si è deciso di rifare tutto da zero e di creare un ramo Wget2 separato per implementare idee di ristrutturazione, aumento di funzionalità e modifiche che interrompono la compatibilità. Ad eccezione della deprecazione del protocollo FTP e del formato WARC, wget2 può fungere da sostituto trasparente della classica utilità wget nella maggior parte delle situazioni.

Detto questo, wget2 presenta alcune differenze documentate nel comportamento, fornisce circa 30 opzioni aggiuntive e smette di supportare diverse dozzine di opzioni. È stata inclusa l'elaborazione di opzioni quali “-ask-password”, “-header”, “-exclude-directories”, “-ftp*”, “-warc*”, “-limit-rate”, “-relative” interrotto" e "--unlink".

Le principali innovazioni includono:

  • Spostamento delle funzionalità nella libreria libwget.
  • Transizione all'architettura multi-thread.
  • Possibilità di stabilire più connessioni in parallelo e scaricare su più thread. È anche possibile parallelizzare il download di un file diviso in blocchi utilizzando l'opzione “-chunk-size”.
  • Supporto del protocollo HTTP/2.
  • Utilizza l'intestazione HTTP If-Modified-Since per scaricare solo i dati modificati.
  • Passa all'utilizzo di limitatori di larghezza di banda esterni come il trickle.
  • Supporto per intestazione Accept-Encoding, trasferimento dati compressi e algoritmi di compressione brotli, zstd, lzip, gzip, deflate, lzma e bzip2.
  • Supporto per TLS 1.3, OCSP (Online Certificate Status Protocol) per il controllo dei certificati revocati, meccanismo HSTS (HTTP Strict Transport Security) per forzare il reindirizzamento su HTTPS e HPKP (HTTP Public Key Pinning) per l'associazione dei certificati.
  • Capacità di utilizzare GnuTLS, WolfSSL e OpenSSL come backend per TLS.
  • Supporto per l'apertura rapida delle connessioni TCP (TCP FastOpen).
  • Supporto del formato Metalink integrato.
  • Supporto per nomi di dominio internazionalizzati (IDNA2008).
  • La possibilità di lavorare contemporaneamente attraverso più server proxy (un flusso verrà caricato tramite un proxy e il secondo tramite un altro).
  • Supporto integrato per feed di notizie nei formati Atom e RSS (ad esempio, per la scansione e il download di collegamenti). I dati RSS/Atom possono essere scaricati da un file locale o in rete.
  • Supporto per l'estrazione di URL dalle Sitemap. Disponibilità di parser per estrarre collegamenti da file CSS e XML.
  • Supporto per la direttiva 'include' nei file di configurazione e distribuzione delle impostazioni su più file (/etc/wget/conf.d/*.conf).
  • Meccanismo di memorizzazione nella cache delle query DNS integrato.
  • Possibilità di ricodificare il contenuto modificando la codifica del documento.
  • Contabilità del file "robots.txt" durante i download ricorsivi.
  • Modalità di scrittura affidabile con chiamata fsync() dopo il salvataggio dei dati.
  • La possibilità di riprendere le sessioni TLS interrotte, nonché di memorizzare nella cache e salvare i parametri della sessione TLS in un file.
  • Modalità "--input-file-" per caricare gli URL provenienti dal flusso di input standard.
  • Verificando la portata del Cookie rispetto alla directory dei suffissi di dominio pubblico (Public Suffix List) per isolare tra loro diversi siti ospitati nello stesso dominio di secondo livello (ad esempio, “a.github.io” e “b.github. io”).
  • Supporta il download dello streaming ICEcast/SHOUTcast.

Fonte: opennet.ru

Aggiungi un commento