La première version stable de l'utilitaire de téléchargement de contenu Web GNU Wget2

Après trois ans et demi de développement, la première version stable du projet GNU Wget2 a été présentée, développant une version entièrement repensée du programme pour automatiser le téléchargement récursif du contenu GNU Wget. GNU Wget2 a été conçu et réécrit à partir de zéro et se distingue par le déplacement des fonctionnalités de base d'un client Web dans la bibliothèque libwget, qui peut être utilisée séparément dans les applications. L'utilitaire est sous licence GPLv3+ et la bibliothèque est sous licence LGPLv3+.

Au lieu de retravailler progressivement la base de code existante, il a été décidé de tout refaire à partir de zéro et de créer une branche Wget2 distincte pour mettre en œuvre des idées de restructuration, d'augmentation des fonctionnalités et d'apporter des modifications qui rompent la compatibilité. À l'exception de la dépréciation du protocole FTP et du format WARC, wget2 peut remplacer de manière transparente l'utilitaire wget classique dans la plupart des situations.

Cela étant dit, wget2 présente des différences de comportement documentées, fournit environ 30 options supplémentaires et cesse de prendre en charge plusieurs dizaines d'options. L'inclusion du traitement d'options telles que « -ask-password », « -header », « -exclude-directories », « -ftp* », « -warc* », « -limit-rate », « -relative » a été arrêté " et "--unlink".

Les principales innovations comprennent :

  • Déplacement des fonctionnalités vers la bibliothèque libwget.
  • Transition vers une architecture multithread.
  • Possibilité d'établir plusieurs connexions en parallèle et de télécharger sur plusieurs threads. Il est également possible de paralléliser le téléchargement d'un fichier divisé en blocs grâce à l'option « -chunk-size ».
  • Prise en charge du protocole HTTP/2.
  • Utilisez l'en-tête HTTP If-Modified-Since pour télécharger uniquement les données modifiées.
  • Passez à l'utilisation de limiteurs de bande passante externes tels que le maintien.
  • Prise en charge de l'en-tête Accept-Encoding, du transfert de données compressées et des algorithmes de compression brotli, zstd, lzip, gzip, deflate, lzma et bzip2.
  • Prise en charge de TLS 1.3, OCSP (Online Certificate Status Protocol) pour vérifier les certificats révoqués, mécanisme HSTS (HTTP Strict Transport Security) pour forcer la redirection vers HTTPS et HPKP (HTTP Public Key Pinning) pour la liaison des certificats.
  • Possibilité d'utiliser GnuTLS, WolfSSL et OpenSSL comme backends pour TLS.
  • Prise en charge de l'ouverture rapide des connexions TCP (TCP FastOpen).
  • Prise en charge intégrée du format Metalink.
  • Prise en charge des noms de domaine internationalisés (IDNA2008).
  • La possibilité de travailler simultanément via plusieurs serveurs proxy (un flux sera chargé via un proxy et le second via un autre).
  • Prise en charge intégrée des flux d'actualités aux formats Atom et RSS (par exemple, pour numériser et télécharger des liens). Les données RSS/Atom peuvent être téléchargées à partir d'un fichier local ou sur le réseau.
  • Prise en charge de l'extraction d'URL à partir de plans Sitemap. Disponibilité d'analyseurs pour extraire des liens à partir de fichiers CSS et XML.
  • Prise en charge de la directive 'include' dans les fichiers de configuration et répartition des paramètres sur plusieurs fichiers (/etc/wget/conf.d/*.conf).
  • Mécanisme de mise en cache des requêtes DNS intégré.
  • Possibilité de réencoder le contenu en modifiant l'encodage du document.
  • Comptabilisation du fichier « robots.txt » lors des téléchargements récursifs.
  • Mode d'écriture fiable avec appel fsync() après la sauvegarde des données.
  • La possibilité de reprendre les sessions TLS interrompues, ainsi que de mettre en cache et d'enregistrer les paramètres de session TLS dans un fichier.
  • Mode "--input-file-" pour charger les URL provenant du flux d'entrée standard.
  • Vérification de la portée du Cookie par rapport au répertoire des suffixes du domaine public (Public Suffix List) pour isoler les uns des autres différents sites hébergés dans le même domaine de deuxième niveau (par exemple, « a.github.io » et « b.github. io »).
  • Prend en charge le téléchargement du streaming ICEcast/SHOUTcast.

Source: opennet.ru

Ajouter un commentaire