Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Wget

From Wikipedia, the free encyclopedia
Computer command line program

This articleneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Wget" – news ·newspapers ·books ·scholar ·JSTOR
(March 2023) (Learn how and when to remove this message)
Wget
Screenshot of Wget running onUbuntu.
Original author(s)Hrvoje Nikšić
Developer(s)Giuseppe Scrivano, Tim Rühsen, Darshit Shah
Initial releaseJanuary 1996; 29 years ago (1996-01)
Stable release
1.25.0[1] Edit this on Wikidata / 10 November 2024
Repository
Written inC
PlatformCross-platform
TypeFTP client /HTTP client
LicenseGPL-3.0-or-later[a][2]
Websitewww.gnu.org/software/wget/

GNU Wget (or justWget, formerlyGeturl, also written as its package name,wget) is acomputer program that retrieves content fromweb servers. It is part of theGNU Project. Its name derives from "World Wide Web" and "get". It supports downloading viaHTTP,HTTPS, andFTP.

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 amongUnix users and distribution with most majorLinux distributions. Wget is written inC, and can be easily installed on any Unix-like system. Wget has been ported toMicrosoft Windows,macOS,OpenVMS,HP-UX,AmigaOS,MorphOS, andSolaris. Since version 1.14, Wget has been able to save its output in the web archiving standardWARC format.[3]

History

[edit]

Wget descends from an earlier program named Geturl by the same author,[4] the development of which commenced in late 1995. The name changed to Wget after the author became aware of an earlierAmiga program named GetURL, written by James Burton inAREXX.

Wget filled a gap in the inconsistent web-downloading software available in the mid-1990s. No single program could reliably use bothHTTP andFTP to download files. Existing programs either supported FTP (such asNcFTP and dl) or were written inPerl, which was not yet ubiquitous. While Wget was inspired by features of some of the existing programs, it supported both HTTP and FTP and could be built using only the standard development tools found on every Unix system.

At that time many Unix users struggled behind extremely slow university anddial-upInternet connections, leading to a growing need for a downloading agent that could deal with transient network failures without assistance from the human operator.

Features

[edit]

Robustness

[edit]

Wget has been designed for robustness over slow or unstable network connections. If adownload does not complete due to anetwork problem, Wget will automatically try to continue the download from where it left off, and repeat this until the whole file has been retrieved. It was one of the first clients to make use of the then-newRangeHTTP header to support this feature.

Recursive download

[edit]

Wget can optionally work like aweb crawler by extracting resourceslinked fromHTMLpages and downloading them in sequence, repeating the processrecursively until all the pages have been downloaded or a maximum recursion depth specified by the user has been reached. The downloaded pages are saved in a directory structure resembling that on the remote server. This "recursive download" enables partial or complete mirroring ofweb sites via HTTP. Links in downloaded HTML pages can be adjusted to point to locally downloaded material foroffline viewing. When performing this kind of automaticmirroring of web sites, Wget supports theRobots Exclusion Standard (unless the option-e robots=off is used).

Recursive download works withFTP as well, where Wget issues theLIST command to find which additional files to download, repeating this process for directories and files under the one specified in the topURL. Shell-likewildcards are supported when the download of FTP URLs is requested.

When downloading recursively over eitherHTTP orFTP, Wget can be instructed to inspect thetimestamps of local and remote files, and download only the remote files newer than the corresponding local ones. This allows easy mirroring ofHTTP andFTP sites, but is considered inefficient and more error-prone when compared to programs designed for mirroring from the ground up, such asrsync. On the other hand, Wget does not require special server-side software for this task.

Non-interactiveness

[edit]

Wget is non-interactive in the sense that, once started, it does not require user interaction and does not need to control aTTY, being able to log its progress to a separate file for later inspection. Users can start Wget andlog off, leaving the program unattended. By contrast, mostgraphical ortext user interfaceweb browsers require the user to remain logged in and to manually restart failed downloads, which can be a great hindrance when transferring a lot of data.

Portability

[edit]

Written in a highly portable style ofC with minimal dependencies on third-party libraries, Wget requires little more than a C compiler and a BSD-like interface toTCP/IP networking.[citation needed] Designed as a Unix program invoked from theUnix shell, the program has been ported to numerous Unix-like environments and systems, includingMicrosoft Windows viaCygwin, andmacOS. It is also available as a nativeMicrosoft Windows program as one of theGnuWin packages.

Other features

[edit]
  • Wget supports download throughproxies, which are widely deployed to provide web access inside companyfirewalls and to cache and quickly deliver frequently accessed content.
  • It makes use ofHTTP persistent connections where available.
  • IPv6 is supported on systems that include the appropriate interfaces.
  • SSL/TLS is supported for encrypted downloads using theOpenSSL orGnuTLS library.
  • Files larger than 2GiB aresupported on 32-bit systems that include the appropriate interfaces.
  • Download speed may bethrottled to avoid using up all of the availablebandwidth.
  • Can save its output in the web archiving standardWARC format, deduplicating from an associated CDX file as required.[3]

Authors and copyright

[edit]

GNU Wget was written by Hrvoje Nikšić with contributions by many other people, including Dan Harkless, Ian Abbott, and Mauro Tortonesi. Significant contributions are credited in theAUTHORS file included in the distribution, and all remaining ones are documented in thechangelogs, also included with the program. Wget is currently maintained by Giuseppe Scrivano, Tim Rühsen and Darshit Shah.[5]

The copyright to Wget belongs to theFree Software Foundation, whose policy is to require copyright assignments for all non-trivial contributions to GNU software.[6]

License

[edit]

GNU Wget is distributed under the terms of theGNU General Public License, version 3 or later, with a specialexception that allows distribution of binarieslinked against theOpenSSL library. The text of the exception follows:[2]

Additional permission under GNU GPL version 3 section 7

If you modify this program, or any covered work, by linking or combining it with the OpenSSL project's OpenSSL library (or a modified version of that library), containing parts covered by the terms of the OpenSSL or SSLeay licenses, the Free Software Foundation grants you additional permission to convey the resulting work. Corresponding Source for a non-source form of such a combination shall include the source code for the parts of OpenSSL used as well as that of the covered work.

It is expected[by whom?] that the exception clause will be removed once Wget is modified to alsolink with theGnuTLS library.

Wget'sdocumentation, in the form of aTexinfo reference manual, is distributed under the terms of theGNU Free Documentation License, version 1.2 or later. Theman page usually distributed on Unix-like systems is automatically generated from a subset of the Texinfo manual and falls under the terms of the same license.

Development

[edit]

Wget is developed in an open fashion, most of the design decisions typically being discussed on the public mailing list[7] followed by users and developers. Bug reports and patches are relayed to the same list.

Source contribution

[edit]

The preferred method of contributing to Wget's code and documentation is through source updates in the form of textualpatches generated by thediff utility. Patches intended for inclusion in Wget are submitted to the mailing list[7] where they are reviewed by the maintainers. Patches that pass the maintainers' scrutiny are installed in the sources. Instructions on patch creation as well as style guidelines are outlined on the project's wiki.[8]

The source code can also be tracked via a remoteversion control repository that hosts revision history beginning with the 1.5.3 release. The repository is currently runningGit.[9] Prior to that, the source code had been hosted on (in reverse order):Bazaar,[10]Mercurial,Subversion, and viaCVS.

Release

[edit]

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 asversions of the form ofmajor.minor[.revision], such asWget 1.11 orWget 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 theodd-even release number convention popularized by Linux.

Popular references

[edit]

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

Notable releases

[edit]

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 theNEWS file distributed with Wget.[4]

  • 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.[11]
  • Wget 1.4.0, released November 1996, was the first version to use the nameWget. It was also the first release distributed under the terms of theGNU GPL, Geturl having been distributed under an ad hoc no-warrantylicense.
  • Wget 1.4.3, released February 1997, was the first version released as part ofthe GNU project with the copyright assigned to theFSF.
  • Wget 1.5.3, released September 1998, was a milestone in the program's popularity. This version was bundled with manyLinux 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, introducedSSL support,cookies, andpersistent connections.
  • Wget 1.8, released December 2001, addedbandwidth throttling, new progress indicators, and the breadth-first traversal of the hyperlinkgraph.
  • Wget 1.9, released October 2003, included experimentalIPv6 support, and ability to POST data to HTTP servers.
  • Wget 1.10, released June 2005, introducedlarge file support,IPv6 support on dual-family systems,NTLM authorization, andSSL improvements. The maintainership was picked up by Mauro Tortonesi.
  • Wget 1.11, released January 2008, moved to version 3 of theGNU General Public License, and added preliminary support for theContent-Disposition header, which is often used byCGI 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 fromCSS content on the web, and for handlingInternationalized Resource Identifiers.
  • Wget 1.13, released August 2011, supports HTTP/1.1, fixed some portability issues, and used theGnuTLS library by default for secure connections.[12]
  • Wget 1.14, released August 2012, improved support for TLS and added support forRFC 2617 Digest Access Authentication.
  • Wget 1.15, released January 2014, added—https-only and support for Perfect-Forward Secrecy.
  • Wget 1.16, released October 2014, changed the default progress bar output, closedCVE-2014-4877, 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—if-modified-since.
  • Wget 1.18, released June 2016, resolved theCVE-2016-4971 issue, and added the "--bind-dns-address" and "--dns-servers" options.
  • Wget 1.19, released February 2017, added new options for processing a Metalink file; version 1.19.1 added the—retry-on-http-error option to retry a download if the Web server responds with a given HTTP status code.
  • Wget 1.20, released November 2018, added--retry-on-host-error for more reliability and--accept-regex,--reject-regex options for recursive FTP retrievals.

Wget2

[edit]
Wget2
Initial release26 September 2021; 3 years ago (2021-09-26)
Stable release
2.2.0[13] Edit this on Wikidata / 24 November 2024
Repositorygitlab.com/gnuwget/wget2
LicenseGPL-3.0-or-later[14]
Websitewww.gnu.org/software/wget/

GNU Wget2 2.0.0 was released on 26 September 2021. It is licensed under theGPL-3.0-or-later license, and is wrapped around Libwget which is under theLGPL-3.0-or-later license.[14] It has many improvements in comparison to Wget, particularly, in many cases Wget2 downloads much faster than Wget1.x due to support of the following protocols and technologies:[15]

Related works

[edit]
Screenshot of GWget 1.0.4 inFedora v12 withGNOME v2.28.2 installed

GWget

[edit]

GWget is a free softwaregraphical user interface for Wget. It is developed by David Sedeño Fernández based on theGNOME software stack. GWget supports all of the main features that Wget does, as well as parallel downloads.[16]

Cliget

[edit]

Cliget is an open sourceFirefox addon downloader that usesCurl, Wget and Aria2. It is developed by Zaid Abdulla.[17][18][19]

Clones

[edit]

There exist clones of GNU Wget intended forembedded systems, which are often limited in memory and storage. They support its most basic options, usually limited to downloading.

See also

[edit]

Notes

[edit]
  1. ^GPL-3.0-or-later with OpenSSL exception.

References

[edit]
  1. ^Darshit Shah (11 November 2024)."wget-1.25.0 released [stable]". Retrieved11 November 2024.
  2. ^ab"README file". Retrieved1 December 2014.
  3. ^abScrivano, Giuseppe (6 August 2012)."GNU wget 1.14 released".GNU wget 1.14 released. Free Software Foundation, Inc. Retrieved25 February 2016.
  4. ^ab"GNU Wget NEWS – history of user-visible changes". Svn.dotsrc.org. 20 March 2005. Archived fromthe original on 13 March 2007. Retrieved8 December 2012.Wget 1.4.0 [formerly known as Geturl] is an extensive rewrite of Geturl.
  5. ^"Wget - GNU Project". 30 November 2018. Retrieved30 November 2018.
  6. ^"Why the FSF gets copyright assignments from contributors - GNU Project - Free Software Foundation (FSF)". Gnu.org. Retrieved8 December 2012.
  7. ^ab"Gmane Loom". News.gmane.org. Archived fromthe original on 9 January 2013. Retrieved8 December 2012.
  8. ^"PatchGuidelines - The Wget Wgiki". Wget.addictivecode.org. 22 September 2009. Retrieved8 December 2012.
  9. ^"RepositoryAccess". 31 July 2012. Retrieved7 June 2013.
  10. ^"RepositoryAccess". 22 May 2010. Retrieved20 June 2010.
  11. ^Niksic, Hrvoje (24 June 1996)."Geturl: Software for non-interactive downloading". comp.infosystems.www.announce. Retrieved17 November 2016.
  12. ^"/wget/trunk : contents of NEWS at revision 2608".bzr.savannah.gnu.org.
  13. ^Tim Rühsen (24 November 2024)."wget2-2.2.0 released". Retrieved24 November 2024.
  14. ^ab"GNU Wget2 2.0.0 released".gnu.org. 26 September 2021.
  15. ^"wget2".GitLab.
  16. ^"GWget Home Page". 22 March 2013.
  17. ^"zaidka/cliget".GitHub. Retrieved25 August 2016.
  18. ^"Meet the cliget Developer :: Add-ons for Firefox".addons.mozilla.org. Archived fromthe original on 21 September 2016. Retrieved25 August 2016.
  19. ^"cliget".addons.mozilla.org. Retrieved25 August 2016.
  20. ^"git.openwrt.org Git - project/uclient.git/summary".git.openwrt.org. Archived fromthe original on 6 October 2021. Retrieved6 October 2021.
  21. ^ab"landley/toybox". 6 October 2021 – via GitHub.

External links

[edit]
Wikimedia Commons has media related toGNU Wget.


Microsoft Windows
Freeware
Shareware
Malware
Unix-like
Multi-platform
Related articles
History
Licenses
Software
Contributors
Other topics
Active
Discontinued
Types
Retrieved from "https://en.wikipedia.org/w/index.php?title=Wget&oldid=1252895832"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp