A primeira versão estável do utilitário para baixar conteúdo da web GNU Wget2

Após três anos e meio de desenvolvimento, foi apresentada a primeira versão estável do projeto GNU Wget2, desenvolvendo uma versão completamente redesenhada do programa para automatizar o download recursivo de conteúdo GNU Wget. GNU Wget2 foi projetado e reescrito do zero e é notável por mover a funcionalidade básica de um cliente web para a biblioteca libwget, que pode ser usada separadamente em aplicativos. O utilitário é licenciado sob GPLv3+ e a biblioteca é licenciada sob LGPLv3+.

Em vez de retrabalhar gradualmente a base de código existente, decidiu-se refazer tudo do zero e estabelecer uma ramificação Wget2 separada para implementar ideias de reestruturação, aumentar a funcionalidade e fazer alterações que quebram a compatibilidade. Com exceção da descontinuação do protocolo FTP e do formato WARC, o wget2 pode atuar como um substituto transparente para o utilitário wget clássico na maioria das situações.

No entanto, o wget2 tem algumas diferenças de comportamento documentadas, fornece cerca de 30 opções adicionais e deixa de oferecer suporte a várias dezenas de opções. Incluindo o processamento de opções como “-ask-password”, “-header”, “-exclude-directories”, “-ftp*”, “-warc*”, “-limit-rate”, “-relative” foi parou " e "--desvincular".

As principais inovações incluem:

  • Movendo funcionalidade para a biblioteca libwget.
  • Transição para arquitetura multithread.
  • Capacidade de estabelecer múltiplas conexões em paralelo e fazer download para vários threads. Também é possível paralelizar o download de um arquivo dividido em blocos utilizando a opção “-chunk-size”.
  • Suporte ao protocolo HTTP/2.
  • Use o cabeçalho HTTP If-Modified-Since para baixar apenas os dados modificados.
  • Passe a usar limitadores de largura de banda externos, como trickle.
  • Suporte para cabeçalho Accept-Encoding, transferência de dados compactados e algoritmos de compactação brotli, zstd, lzip, gzip, deflate, lzma e bzip2.
  • Suporte para TLS 1.3, OCSP (Online Certificate Status Protocol) para verificação de certificados revogados, mecanismo HSTS (HTTP Strict Transport Security) para forçar o redirecionamento para HTTPS e HPKP (HTTP Public Key Pinning) para vinculação de certificado.
  • Capacidade de usar GnuTLS, WolfSSL e OpenSSL como back-end para TLS.
  • Suporte para abertura rápida de conexões TCP (TCP FastOpen).
  • Suporte integrado ao formato Metalink.
  • Suporte para nomes de domínio internacionalizados (IDNA2008).
  • A capacidade de trabalhar simultaneamente através de vários servidores proxy (um fluxo será carregado através de um proxy e o segundo através de outro).
  • Suporte integrado para feeds de notícias nos formatos Atom e RSS (por exemplo, para digitalização e download de links). Os dados RSS/Atom podem ser baixados de um arquivo local ou pela rede.
  • Suporte para extração de URLs de Sitemaps. Disponibilidade de analisadores para extração de links de arquivos CSS e XML.
  • Suporte para a diretiva 'include' em arquivos de configuração e distribuição de configurações em vários arquivos (/etc/wget/conf.d/*.conf).
  • Mecanismo de cache de consulta DNS integrado.
  • Possibilidade de recodificação de conteúdo alterando a codificação do documento.
  • Contabilização do arquivo “robots.txt” durante downloads recursivos.
  • Modo de gravação confiável com chamada fsync() após salvar os dados.
  • A capacidade de retomar sessões TLS interrompidas, bem como armazenar em cache e salvar parâmetros de sessão TLS em um arquivo.
  • Modo "--input-file-" para carregar URLs provenientes do fluxo de entrada padrão.
  • Verificar o escopo do Cookie em relação ao diretório de sufixos de domínio público (Public Suffix List) para isolar diferentes sites hospedados no mesmo domínio de segundo nível (por exemplo, “a.github.io” e “b.github. eu”).
  • Suporta download de streaming ICEcast/SHOUTcast.

Fonte: opennet.ru

Adicionar um comentário