GNU Wget (or just Wget, formerly Geturl, also written as its package name, wget) is a computer program that retrieves content from web servers. It is part of the GNU Project. Its name derives from "World Wide Web" and "get", a HTTP request method. It supports downloading via HTTP, HTTPS, and FTP.

Its features include recursive download, conversion of links for offline viewing of local HTML, and support for proxies. It appeared in 1996, coinciding with the boom of popularity of the Web, causing its wide use among Unix users and distribution with most major Linux distributions. Wget is written in C, and can be easily installed on any Unix-like system. Wget has been ported to Microsoft Windows, macOS, OpenVMS, HP-UX, AmigaOS, MorphOS, and Solaris. Since version 1.14, Wget has been able to save its output in the web archiving standard WARC format.

History

Wget descends from an earlier program named Geturl by the same author,

<!--The previous maintainer was Micah Cowan. -->

The copyright to Wget belongs to the Free Software Foundation, whose policy is to require copyright assignments for all non-trivial contributions to GNU software.

License

GNU Wget is distributed under the terms of the GNU General Public License, version 3 or later, with a special exception that allows distribution of binaries linked against the OpenSSL library. The text of the exception follows: followed by users and developers. Bug reports and patches are relayed to the same list.

Source contribution

The preferred method of contributing to Wget's code and documentation is through source updates in the form of textual patches generated by the diff utility. Patches intended for inclusion in Wget are submitted to the mailing list

The source code can also be tracked via a remote version control repository that hosts revision history beginning with the 1.5.3 release. The repository is currently running Git. Prior to that, the source code had been hosted on (in reverse order): Bazaar, Mercurial, Subversion, and via CVS.

Release

When a sufficient number of features or bug fixes accumulate during development, Wget is released to the general public via the GNU FTP site and its mirrors. Being entirely run by volunteers, there is no external pressure to issue a release nor are there enforceable release deadlines.

Releases are numbered as versions of the form of major.minor[.revision], such as Wget 1.11 or Wget 1.8.2. An increase of the major version number represents large and possibly incompatible changes in Wget's behavior or a radical redesign of the code base. An increase of the minor version number designates addition of new features and bug fixes. A new revision indicates a release that, compared to the previous revision, only contains bug fixes. Revision zero is omitted, meaning that for example Wget 1.11 is the same as 1.11.0. Wget does not use the odd-even release number convention popularized by Linux.

Wget makes an appearance in the 2010 Columbia Pictures motion picture release, The Social Network. The lead character, a somewhat fictionalized version of Facebook co-founder Mark Zuckerberg, uses Wget to aggregate student photos from various Harvard University housing-facility directories.

Notable releases

The following releases represent notable milestones in Wget's development. Features listed next to each release are edited for brevity and do not constitute comprehensive information about the release, which is available in the NEWS file distributed with Wget.

  • Geturl 1.0, released January 1996, was the first publicly available release. The first English-language announcement can be traced to a Usenet news posting, which probably refers to Geturl 1.3.4 released in June.
  • Wget 1.4.0, released November 1996, was the first version to use the name Wget. It was also the first release distributed under the terms of the GNU GPL, Geturl having been distributed under an ad hoc no-warranty license.
  • Wget 1.4.3, released February 1997, was the first version released as part of the GNU project with the copyright assigned to the FSF.
  • Wget 1.5.3, released September 1998, was a milestone in the program's popularity. This version was bundled with many Linux based distributions, which exposed the program to a much wider audience.
  • Wget 1.6, released December 1999, incorporated many bug fixes for the (by then stale) 1.5.3 release, largely thanks to the effort of Dan Harkless.
  • Wget 1.7, released June 2001, introduced SSL support, cookies, and persistent connections.
  • Wget 1.8, released December 2001, added bandwidth throttling, new progress indicators, and the breadth-first traversal of the hyperlink graph.
  • Wget 1.9, released October 2003, included experimental IPv6 support, and ability to POST data to HTTP servers.
  • Wget 1.10, released June 2005, introduced large file support, IPv6 support on dual-family systems, NTLM authorization, and SSL improvements. The maintainership was picked up by Mauro Tortonesi.
  • Wget 1.11, released January 2008, moved to version 3 of the GNU General Public License, and added preliminary support for the <code>Content-Disposition</code> header, which is often used by CGI scripts to indicate the name of a file for downloading. Security-related improvements were also made to the HTTP authentication code. Micah Cowan took over maintainership of the project.
  • Wget 1.12, released September 2009, added support for parsing URLs from CSS content on the web, and for handling Internationalized Resource Identifiers.
  • Wget 1.13, released August 2011, supports HTTP/1.1, fixed some portability issues, and used the GnuTLS library by default for secure connections.
  • Wget 1.14, released August 2012, improved support for TLS and added support for Digest Access Authentication.
  • Wget 1.15, released January 2014, added and support for Secrecy.
  • Wget 1.16, released October 2014, changed the default progress bar output, closed , added support for libpsl to verify cookie domains, and introduced—start-pos to allow starting downloads from a specified position.
  • Wget 1.17, released November 2015, removed FTP passive to active fallback due to privacy concerns, added support for FTPS and for .
  • Wget 1.18, released June 2016, resolved the issue, and added the and options.
  • Wget 1.19, released February 2017, added new options for processing a Metalink file; version 1.19.1 added the option to retry a download if the Web server responds with a given HTTP status code.
  • Wget 1.20, released November 2018, added <code>--retry-on-host-error</code> for more reliability and <code>--accept-regex</code>, <code>--reject-regex</code> options for recursive FTP retrievals.

Wget2