Wget - Wget

Wget
Wget 1.13.4.png
Captura de tela do Wget rodando no Ubuntu e baixando esta página da Wikipedia sobre ele mesmo.
Autor (es) original (is) Hrvoje Nikšić
Desenvolvedor (s) Giuseppe Scrivano, Tim Rühsen, Darshit Shah
lançamento inicial Janeiro de 1996 ; 25 anos atrás (1996-01)
Versão estável
1.21.2  Edite isso no Wikidata / 7 de setembro de 2021 ; 34 dias atrás (7 September 2021)
Repositório
Escrito em C
Sistema operacional Plataforma cruzada
Modelo Cliente FTP / cliente HTTP
Licença GPL-3.0 ou posterior
Local na rede Internet www .gnu .org / software / wget /

GNU Wget (ou apenas Wget , anteriormente Geturl , também escrito como seu nome de pacote, wget ) é um programa de computador que recupera conteúdo de servidores da web . Faz parte do Projeto GNU . Seu nome deriva de " World Wide Web " e " get ". Suporta download via HTTP , HTTPS e FTP .

Seus recursos incluem download recursivo, conversão de links para visualização offline de HTML local e suporte para proxies. Ele apareceu em 1996, coincidindo com o boom de popularidade da Web, causando seu amplo uso entre usuários Unix e distribuição com a maioria das principais distribuições Linux . Escrito em C portátil , o Wget pode ser facilmente instalado em qualquer sistema semelhante ao Unix. Wget foi portado para Microsoft Windows , macOS , OpenVMS , HP-UX , AmigaOS , MorphOS e Solaris . Desde a versão 1.14, o Wget pode salvar sua saída no formato WARC padrão de arquivamento da web .

Ele tem sido usado como base para programas gráficos como o GWget para a área de trabalho GNOME .

História

Wget descende de um programa anterior denominado Geturl do mesmo autor, cujo desenvolvimento começou no final de 1995. O nome mudou para Wget depois que o autor tomou conhecimento de um programa Amiga anterior denominado GetURL, escrito por James Burton em AREXX .

Wget preencheu uma lacuna no software inconsistente de download da Web disponível em meados da década de 1990. Nenhum programa pode usar de forma confiável HTTP e FTP para fazer download de arquivos. Os programas existentes suportavam FTP (como NcFTP e dl) ou eram escritos em Perl , que ainda não era onipresente. Embora o Wget tenha se inspirado nos recursos de alguns dos programas existentes, ele suportava HTTP e FTP e podia ser construído usando apenas as ferramentas de desenvolvimento padrão encontradas em todos os sistemas Unix.

Naquela época, muitos usuários Unix lutou universidade por trás extremamente lento e dial-up de Internet conexões, levando a uma necessidade crescente de um agente de transferência que pode lidar com falhas de rede transitórios sem a assistência do operador humano.

Em 2010, Chelsea Manning usou o Wget para baixar 250.000 telegramas diplomáticos dos EUA e 500.000 relatórios do Exército que ficaram conhecidos como registros da Guerra do Iraque e registros da Guerra do Afeganistão enviados ao WikiLeaks .

Recursos

Robustez

Wget foi projetado para ser robusto em conexões de rede lentas ou instáveis. Se o download não for concluído devido a um problema de rede , o Wget tentará automaticamente continuar o download de onde parou e repetirá até que todo o arquivo seja recuperado. Foi um dos primeiros clientes a usar o então novo Range cabeçalho HTTP para oferecer suporte a esse recurso.

Download recursivo

Wget pode, opcionalmente, o trabalho como um web crawler extraindo recursos vinculados a partir de HTML páginas e baixá-los em seqüência, repetindo o processo recursivamente até que todas as páginas foram baixados ou uma profundidade máxima de recursão especificado pelo usuário foi atingido. As páginas baixadas são salvas em uma estrutura de diretório semelhante à do servidor remoto. Este "download recursivo" permite o espelhamento parcial ou completo de sites da web via HTTP. Os links nas páginas HTML baixadas podem ser ajustados para apontar para o material baixado localmente para visualização offline . Ao realizar este tipo de espelhamento automático de sites, o Wget suporta o Robots Exclusion Standard (a menos que a opção -e robots=offseja usada).

O download recursivo também funciona com FTP , onde Wget emite o LISTcomando para encontrar quais arquivos adicionais baixar, repetindo esse processo para diretórios e arquivos sob aquele especificado na URL superior . Caracteres curinga do tipo shell são suportados quando o download de URLs de FTP é solicitado.

Ao baixar recursivamente por HTTP ou FTP , o Wget pode ser instruído a inspecionar os carimbos de data / hora dos arquivos locais e remotos e baixar apenas os arquivos remotos mais novos do que os locais correspondentes. Isso permite o espelhamento fácil de sites HTTP e FTP , mas é considerado ineficiente e mais sujeito a erros quando comparado a programas projetados para espelhamento do zero, como o rsync . Por outro lado, o Wget não requer software especial do lado do servidor para essa tarefa.

Não interatividade

Wget é não interativo no sentido de que, uma vez iniciado, não requer interação do usuário e não precisa controlar um TTY , podendo registrar seu progresso em um arquivo separado para inspeção posterior. Os usuários podem iniciar o Wget e fazer logoff , deixando o programa sem supervisão. Por outro lado, a maioria dos navegadores de interface gráfica ou de texto exige que o usuário permaneça conectado e reinicie manualmente os downloads que falharam, o que pode ser um grande obstáculo ao transferir muitos dados.

Portabilidade

Escrito em um estilo C altamente portátil com dependências mínimas de bibliotecas de terceiros, o Wget requer pouco mais do que um compilador C e uma interface semelhante a BSD para redes TCP / IP . Projetado como um programa Unix invocado a partir do shell Unix , o programa foi portado para vários ambientes e sistemas semelhantes ao Unix, incluindo Microsoft Windows via Cygwin e macOS . Também está disponível como um programa nativo do Microsoft Windows como um dos pacotes GnuWin .

Outras características

  • O Wget oferece suporte para download por meio de proxies , que são amplamente implantados para fornecer acesso à web dentro dos firewalls da empresa e para armazenar em cache e fornecer rapidamente conteúdo acessado com frequência.
  • Ele faz uso de conexões HTTP persistentes, quando disponíveis.
  • IPv6 é compatível com sistemas que incluem as interfaces apropriadas.
  • SSL / TLS é compatível com downloads criptografados usando a biblioteca OpenSSL ou GnuTLS .
  • Arquivos maiores que 2 GiB são suportados em sistemas de 32 bits que incluem as interfaces apropriadas.
  • Velocidade de download pode ser estrangulada para evitar o uso de todo o disponível largura de banda .
  • Pode salvar sua saída no formato WARC padrão de arquivamento da web , desduplicando a partir de um arquivo CDX associado conforme necessário.

Autores e direitos autorais

GNU Wget foi escrito por Hrvoje Nikšić com contribuições de muitas outras pessoas, incluindo Dan Harkless, Ian Abbott e Mauro Tortonesi. Contribuições significativas são creditadas no arquivo AUTHORS incluído na distribuição, e todas as restantes são documentadas nos changelogs , também incluídos no programa. Wget é atualmente mantido por Giuseppe Scrivano, Tim Rühsen e Darshit Shah.

Os direitos autorais do Wget pertencem à Free Software Foundation , cuja política é exigir atribuições de direitos autorais para todas as contribuições não triviais ao software GNU.

Licença

GNU Wget é distribuído sob os termos da GNU General Public License , versão 3 ou posterior, com uma exceção especial que permite a distribuição de binários vinculados à biblioteca OpenSSL . O texto da exceção segue:

Permissão adicional sob GNU GPL versão 3 seção 7

Se você modificar este programa, ou qualquer trabalho coberto, vinculando-o ou combinando-o com a biblioteca OpenSSL do projeto OpenSSL (ou uma versão modificada dessa biblioteca), contendo partes cobertas pelos termos das licenças OpenSSL ou SSLeay, a Free Software Foundation concede você permissão adicional para transmitir o trabalho resultante. A fonte correspondente para uma forma não fonte de tal combinação deve incluir o código-fonte das partes do OpenSSL usadas, bem como do trabalho coberto.

Espera-se que a cláusula de exceção seja removida uma vez que Wget seja modificado para se vincular também à biblioteca GnuTLS .

A documentação do Wget , na forma de um manual de referência Texinfo , é distribuída sob os termos da GNU Free Documentation License , versão 1.2 ou posterior. A página do manual normalmente distribuída em sistemas do tipo Unix é gerada automaticamente a partir de um subconjunto do manual Texinfo e cai sob os termos da mesma licença.

Desenvolvimento

O Wget é desenvolvido de forma aberta, a maioria das decisões de design normalmente sendo discutidas na lista de correio pública seguida por usuários e desenvolvedores. Relatórios de bugs e patches são retransmitidos para a mesma lista.

Contribuição da fonte

O método preferido de contribuir para o código e documentação do Wget é por meio de atualizações de código-fonte na forma de patches textuais gerados pelo utilitário diff . Patches para inclusão no Wget são enviados para a lista de discussão onde são revisados ​​pelos mantenedores. Patches que passam pelo escrutínio dos mantenedores são instalados nos fontes. As instruções sobre a criação de patches, bem como as diretrizes de estilo, estão descritas no wiki do projeto.

O código-fonte também pode ser rastreado por meio de um repositório de controle de versão remoto que hospeda o histórico de revisão começando com a versão 1.5.3. O repositório está executando o Git . Antes disso, o código-fonte era hospedado em (na ordem reversa): Bazaar , Mercurial , Subversion e via CVS .

Liberar

Quando um número suficiente de recursos ou correções de bugs se acumulam durante o desenvolvimento, o Wget é lançado para o público em geral através do site GNU FTP e seus espelhos. Sendo inteiramente administrado por voluntários, não há pressão externa para emitir uma liberação nem há prazos de liberação executáveis.

As versões são numeradas como versões no formato major.minor [.revision] , como Wget 1.11 ou Wget 1.8.2 . Um aumento do número da versão principal representa mudanças grandes e possivelmente incompatíveis no comportamento do Wget ou um redesenho radical da base de código. Um aumento do número da versão secundária designa a adição de novos recursos e correções de bugs. Uma nova revisão indica uma versão que, em comparação com a revisão anterior, contém apenas correções de bugs. A revisão zero é omitida, o que significa que, por exemplo, Wget 1.11 é igual a 1.11.0. O Wget não usa a convenção de número de lançamento par-ímpar popularizada pelo Linux.

Referências populares

Wget faz uma aparição no lançamento do filme de 2010 da Columbia Pictures , The Social Network . O personagem principal, vagamente baseado no cofundador do Facebook , Mark Zuckerberg , usa o Wget para agregar fotos de alunos de vários diretórios de residências da Universidade de Harvard .

Lançamentos notáveis

As versões a seguir representam marcos notáveis ​​no desenvolvimento do Wget. Os recursos listados ao lado de cada versão são editados para abreviar e não constituem informações abrangentes sobre a versão, que está disponível no arquivo NEWS distribuído com o Wget.

  • Geturl 1.0, lançado em janeiro de 1996, foi o primeiro lançamento disponível ao público. O primeiro anúncio em inglês pode ser rastreado até uma postagem de notícias da Usenet, que provavelmente se refere ao Geturl 1.3.4 lançado em junho.
  • Wget 1.4.0, lançado em novembro de 1996, foi a primeira versão a usar o nome Wget . Foi também o primeiro lançamento distribuído sob os termos da GNU GPL , tendo o Geturl sido distribuído sob uma licença ad hoc sem garantia .
  • Wget 1.4.3, lançado em fevereiro de 1997, foi a primeira versão lançada como parte do projeto GNU com os direitos autorais atribuídos à FSF .
  • Wget 1.5.3, lançado em setembro de 1998, foi um marco na popularidade do programa. Esta versão foi incluída em muitas distribuições baseadas em Linux , o que expôs o programa a um público muito mais amplo.
  • O Wget 1.6, lançado em dezembro de 1999, incorporou muitas correções de bugs para o (então obsoleto) lançamento 1.5.3, em grande parte graças ao esforço de Dan Harkless.
  • Wget 1.7, lançado em junho de 2001, introduziu suporte SSL , cookies e conexões persistentes .
  • O Wget 1.8, lançado em dezembro de 2001, adicionou controle de largura de banda , novos indicadores de progresso e a travessia em largura do gráfico de hiperlink .
  • O Wget 1.9, lançado em outubro de 2003, incluía suporte experimental a IPv6 e capacidade de POST de dados em servidores HTTP.
  • Wget 1.10, lançado em junho de 2005, introduziu suporte a arquivos grandes , suporte a IPv6 em sistemas de família dupla, autorização NTLM e melhorias de SSL . A manutenção foi assumida por Mauro Tortonesi.
  • Wget 1.11, lançado em janeiro de 2008, mudou para a versão 3 da GNU General Public License e adicionou suporte preliminar para o Content-Dispositioncabeçalho, que é freqüentemente usado por scripts CGI para indicar o nome de um arquivo para download. Melhorias relacionadas à segurança também foram feitas no código de autenticação HTTP. Micah Cowan assumiu a manutenção do projeto.
  • Wget 1.12, lançado em setembro de 2009, adicionou suporte para analisar URLs de conteúdo CSS na web e para lidar com identificadores de recursos internacionalizados .
  • Wget 1.13, lançado em agosto de 2011, oferece suporte a HTTP / 1.1, corrigiu alguns problemas de portabilidade e usou a biblioteca GnuTLS por padrão para conexões seguras.
  • Wget 1.14, lançado em agosto de 2012, melhorou o suporte para TLS e adicionou suporte para RFC  2617 Digest Access Authentication.
  • Wget 1.15, lançado em janeiro de 2014, adicionado - apenas https e suporte para Perfect-Forward Secrecy.
  • Wget 1.16, lançado em outubro de 2014, alterou a saída da barra de progresso padrão, fechou o CVE - 2014-4877 , adicionou suporte para libpsl para verificar domínios de cookies e introduziu - start-pos para permitir o início de downloads de uma posição especificada.
  • Wget 1.17, lançado em novembro de 2015, removeu FTP passivo para fallback ativo devido a questões de privacidade, adicionou suporte para FTPS e para — se modificado desde então.
  • Wget 1.18, lançado em junho de 2016, resolveu o problema CVE - 2016-4971 e adicionou as opções "--bind-dns-address" e "--dns-servers".
  • Wget 1.19, lançado em fevereiro de 2017, adicionou novas opções para processar um arquivo Metalink; A versão 1.19.1 adicionou a opção — retry-on-http-error para tentar novamente um download se o servidor Web responder com um determinado código de status HTTP.
  • Wget 1.20, lançado em novembro de 2018, acrescentou --retry-on-host-error, para mais confiabilidade e --accept-regex, --reject-regexopções para recuperações FTP recursiva.

Wget2

Wget2
lançamento inicial 26 de setembro de 2021 ; 15 dias atrás (2021-09-26)
Versão estável
2.0  Edite isso no Wikidata / 26 de setembro de 2021 ; 15 dias atrás (26 September 2021)
Versão de visualização
1.99.2  Edite isso no Wikidata / 30 de agosto de 2019 ; 2 anos atrás (30 August 2019)
Repositório git .savannah .gnu .org / IGC / wget / wget2 .git
Licença GPL-3.0 ou posterior
Local na rede Internet www .gnu .org / software / wget /

GNU Wget2 2.0.0 foi lançado em 26 de setembro de 2021. Ele é licenciado sob a licença GPL-3.0 ou posterior e envolve Libwget, que está sob a licença LGPL-3.0 ou posterior . Ele tem muitas melhorias em comparação com o Wget, particularmente, em muitos casos o Wget2 baixa muito mais rápido do que o Wget1.x devido ao suporte dos seguintes protocolos e tecnologias:

Trabalhos relacionados

Captura de tela do GWget 1.0.4 no Fedora v12 com GNOME v2.28.2 instalado

GWget

GWget é uma interface gráfica de usuário de software livre para Wget. É desenvolvido por David Sedeño Fernández e faz parte do projeto GNOME . O GWget oferece suporte a todos os recursos principais do Wget, bem como downloads paralelos.

Cliget

Cliget é um downloader de addon de código aberto do Firefox que usa Curl , Wget e Aria2. É desenvolvido por Zaid Abdulla.

Clones

Para sistemas incorporados, o tamanho de armazenamento é caracteristicamente limitado e, normalmente, eles usam clones do GNU Wget que têm apenas opções básicas, normalmente apenas baixando:

Veja também

Notas

Referências

links externos