Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
WGET2(1)			GNU Wget2 2.2.0			      WGET2(1)

Name
       Wget2 - a recursive metalink/file/website downloader.

Synopsis
       wget2 [options]... [URL]...

Description
       GNU  Wget2 is a free utility for	non-interactive	download of files from
       the Web.	 It supports HTTP and HTTPS protocols, as  well	 as  retrieval
       through HTTP(S) proxies.

       Wget2  is  non-interactive, meaning that	it can work in the background,
       while the user is not logged on.	 This allows you to start a  retrieval
       and disconnect from the system, letting Wget2 finish the	work.  By con-
       trast, most of the Web browsers require constant	user's presence, which
       can be a	great hindrance	when transferring a lot	of data.

       Wget2 can follow	links in HTML, XHTML, CSS, RSS,	Atom and sitemap files
       to  create local	versions of remote web sites, fully recreating the di-
       rectory structure of the	original site.	This is	sometimes referred  to
       as  recursive  downloading.  While doing	that, Wget2 respects the Robot
       Exclusion Standard (/robots.txt).  Wget2	can be instructed  to  convert
       the  links in downloaded	files to point at the local files, for offline
       viewing.

       Wget2 has been designed for robustness over slow	 or  unstable  network
       connections; if a download fails	due to a network problem, it will keep
       retrying	 until	the whole file has been	retrieved.  If the server sup-
       ports partial downloads,	it may continue	the  download  from  where  it
       left off.

Options
   Option Syntax
       Every  option has a long	form and sometimes also	a short	one.  Long op-
       tions are more convenient to remember, but take time to type.  You  may
       freely mix different option styles.  Thus you may write:

		wget2 -r --tries=10 https://example.com/ -o log

       The space between the option accepting an argument and the argument may
       be omitted.  Instead of -o log you can write -olog.

       You  may	 put  several  options that do not require arguments together,
       like:

		wget2 -drc <URL>

       This is equivalent to:

		wget2 -d -r -c <URL>

       Since the options can be	specified after	the arguments, you may	termi-
       nate  them  with	--.  So	the following will try to download URL -x, re-
       porting failure to log:

		wget2 -o log --	-x

       The options that	accept comma-separated lists all respect  the  conven-
       tion  that  prepending  --no-  clears its value.	 This can be useful to
       clear the .wget2rc settings.  For instance, if your .wget2rc  sets  ex-
       clude-directories  to  /cgi-bin,	the following example will first reset
       it, and then set	it to exclude /priv and	/trash.	 You  can  also	 clear
       the lists in .wget2rc.

		wget2 --no-exclude-directories -X /priv,/trash

       Most options that do not	accept arguments are boolean options, so named
       because	their state can	be captured with a yes-or-no ("boolean") vari-
       able.  A	boolean	option is either affirmative  or  negative  (beginning
       with --no-).  All such options share several properties.

       Affirmative  options  can be negated by prepending the --no- to the op-
       tion name; negative options can be negated by omitting the  --no-  pre-
       fix.   This  might seem superfluous - if	the default for	an affirmative
       option is to not	do something, then why provide	a  way	to  explicitly
       turn it off?  But the startup file may in fact change the default.  For
       instance,  using	timestamping = on in .wget2rc makes Wget2 download up-
       dated files only.  Using	--no-timestamping is the only way  to  restore
       the factory default from	the command line.

   Basic Startup Options
   -V, --version
       Display the version of Wget2.

   -h, --help
       Print a help message describing all of Wget2's command-line options.

   -b, --background
       Go to background	immediately after startup.  If no output file is spec-
       ified via the -o, output	is redirected to wget-log.

   -e, --execute=command
       Execute	command	 as if it were a part of .wget2rc.  A command thus in-
       voked will be executed after the	 commands  in  .wget2rc,  thus	taking
       precedence  over	 them.	 If  you need to specify more than one wget2rc
       command,	use multiple instances of -e.

   --hyperlink
       Hyperlink names of downloaded files so that they	can  opened  from  the
       terminal	 by clicking on	them.  Only a few terminal emulators currently
       support hyperlinks.  Enable this	option if you know your	terminal  sup-
       ports hyperlinks.

   Logging and Input File Options
   -o, --output-file=logfile
       Log  all	 messages  to  logfile.	 The messages are normally reported to
       standard	error.

   -a, --append-output=logfile
       Append to logfile.  This	is the same as -o, only	it appends to  logfile
       instead	of overwriting the old log file.  If logfile does not exist, a
       new file	is created.

   -d, --debug
       Turn on debug output, meaning various information important to the  de-
       velopers	 of  Wget2 if it does not work properly.  Your system adminis-
       trator may have chosen to compile Wget2 without debug support, in which
       case -d will not	work.  Please note that	compiling with	debug  support
       is  always  safe,  Wget2	compiled with the debug	support	will not print
       any debug info unless requested with -d.

   -q, --quiet
       Turn off	Wget2's	output.

   -v, --verbose
       Turn on verbose output, with all	the available data.  The default  out-
       put is verbose.

   -nv,	--no-verbose
       Turn  off  verbose  without  being  completely quiet (use -q for	that),
       which means  that  error	 messages  and	basic  information  still  get
       printed.

   --report-speed=type
       Output bandwidth	as type.  The only accepted values are bytes (which is
       set  by default)	and bits.  This	option only works if --progress=bar is
       also set.

   -i, --input-file=file
       Read URLs from a	local or external file.	 If - is  specified  as	 file,
       URLs  are  read	from  the standard input.  Use ./- to read from	a file
       literally named -.

       If this function	is used, no URLs need be present on the	command	 line.
       If  there are URLs both on the command line and in an input file, those
       on the command lines will be the	first ones to be retrieved.   file  is
       expected	 to  contain  one URL per line,	except one of the --force- op-
       tions specifies a different format.

       If you specify --force-html, the	document will be regarded as HTML.  In
       that case you may have problems with  relative  links,  which  you  can
       solve  either by	adding <base href="url"> to the	documents or by	speci-
       fying --base=url	on the command line.

       If you specify --force-css, the document	will be	regarded as CSS.

       If you specify --force-sitemap, the document will be  regarded  as  XML
       sitemap.

       If  you	specify	 --force-atom,	the  document will be regarded as Atom
       Feed.

       If you specify --force-rss, the document	will be	regarded as RSS	Feed.

       If you specify --force-metalink,	the document will be regarded as  Met-
       alink description.

       If  you have problems with relative links, you should use --base=url on
       the command line.

   -F, --force-html
       When input is read from a file, force it	to be treated as an HTML file.
       This enables you	to retrieve relative links from	existing HTML files on
       your local disk,	by adding "" to	HTML, or using the --base command-line
       option.

   --force-css
       Read and	parse the input	file as	CSS.  This  enables  you  to  retrieve
       links from existing CSS files on	your local disk.  You will need	--base
       to handle relative links	correctly.

   --force-sitemap
       Read  and parse the input file as sitemap XML.  This enables you	to re-
       trieve links from existing sitemap files	on your	local disk.  You  will
       need --base to handle relative links correctly.

   --force-atom
       Read  and  parse	 the input file	as Atom	Feed XML.  This	enables	you to
       retrieve	links from existing sitemap files on  your  local  disk.   You
       will need --base	to handle relative links correctly.

   --force-rss
       Read and	parse the input	file as	RSS Feed XML.  This enables you	to re-
       trieve  links from existing sitemap files on your local disk.  You will
       need --base to handle relative links correctly.

   --force-metalink
       Read and	parse the input	file as	Metalink.  This	 enables  you  to  re-
       trieve links from existing Metalink files on your local disk.  You will
       need --base to handle relative links correctly.

   -B, --base=URL
       Resolves	relative links using URL as the	point of reference, when read-
       ing  links  from	 an HTML file specified	via the	-i/--input-file	option
       (together with a	--force...  option, or when the	input file was fetched
       remotely	from a server describing it as HTML, CSS, Atom or RSS).	  This
       is  equivalent  to the presence of a "BASE" tag in the HTML input file,
       with URL	as the value for the "href" attribute.

       For instance, if	you specify  https://example.com/bar/a.html  for  URL,
       and Wget2 reads ../baz/b.html from the input file, it would be resolved
       to https://example.com/baz/b.html.

   --config=FILE
       Specify	the  location  of configuration	files you wish to use.	If you
       specify more than one file, either by using a comma-separated  list  or
       several	--config options, these	files are read in left-to-right	order.
       The files given in $SYSTEM_WGET2RC and  ($WGET2RC  or  ~/.wget2rc)  are
       read  in	that order and then the	user-provided config file(s).  If set,
       $WGET2RC	replaces ~/.wget2rc.

       --no-config empties the internal	list of	config files.  So if you  want
       to  prevent  reading  any config	files, give --no-config	on the command
       line.

       --no-config followed by --config=file just reads	file and skips reading
       the default config files.

       Wget will attempt to tilde-expand filenames written in  the  configura-
       tion  file  on supported	platforms.  To use a file that starts with the
       character literal `~', use "./~"	or an absolute path.

   --rejected-log=logfile [Not implemented yet]
       Logs all	URL rejections to logfile as comma separated values.  The val-
       ues include the reason of rejection, the	URL and	the parent URL it  was
       found in.

   --local-db
       Enables reading/writing to local	database files (default: on).

       These are the files for --hsts, --hpkp, --ocsp, etc.

       With  --no-local-db you can switch reading/writing off, e.g. useful for
       testing.

       This option does	not influence the reading of config files.

   --stats-dns=[FORMAT:]FILE
       Save DNS	stats in format	FORMAT,	in file	FILE.

       FORMAT can be human or csv.  - is shorthand for stdout and h is	short-
       hand for	human.

       The CSV output format is

       Hostname,IP,Port,Duration

	      `Duration` is given in milliseconds.

   --stats-tls=[FORMAT:]FILE
       Save TLS	stats in format	FORMAT,	in file	FILE.

       FORMAT  can be human or csv.  - is shorthand for	stdout and h is	short-
       hand for	human.

       The CSV output format is

       Hostname,TLSVersion,FalseStart,TFO,Resumed,ALPN,HTTPVersion,Certifi-
       cates,Duration

	      `TLSVersion` can be 1,2,3,4,5 for	SSL3, TLS1.0, TLS1.1, TLS1.2 and TLS1.3. -1 means 'None'.

	      `FalseStart` whether the connection used TLS False Start.	-1 if not applicable.

	      `TFO` whether the	connection used	TCP Fast Open. -1 is TFO was disabled.

	      `Resumed`	whether	the TLS	session	was resumed or not.

	      `ALPN` is	the ALPN negotiation string.

	      `HTTPVersion` is 0 for HTTP 1.1 and 1 is for HTTP	2.0.

	      `Certificates` is	the size of the	server's certificate chain.

	      `Duration` is given in milliseconds.

   --stats-ocsp=[FORMAT:]FILE
       Save OCSP stats in format FORMAT, in file FILE.

       FORMAT can be human or csv.  - is shorthand for stdout and h is	short-
       hand for	human.

       The CSV output format is

       Hostname,Stapling,Valid,Revoked,Ignored

	      `Stapling` whether an OCSP response was stapled or not.

	      `Valid` how many server certificates were	valid regarding	OCSP.

	      `Revoked`	how many server	certificates were revoked regarding OCSP.

	      `Ignored`	how many server	certificates had been ignored or OCSP responses	missing.

   --stats-server=[FORMAT:]FILE
       Save Server stats in format FORMAT, in file FILE.

       FORMAT  can be human or csv.  - is shorthand for	stdout and h is	short-
       hand for	human.

       The CSV output format is

       Hostname,IP,Scheme,HPKP,NewHPKP,HSTS,CSP

	      `Scheme` 0,1,2 mean `None`, `http`, `https`.

	       `HPKP` values 0,1,2,3 mean 'No HPKP', 'HPKP matched', 'HPKP doesn't match', 'HPKP error'.

	      `NewHPKP`	whether	server sent HPKP (Public-Key-Pins) header.

	      `HSTS` whether server sent HSTS (Strict-Transport-Security) header.

	      `CSP` whether server sent	CSP (Content-Security-Policy) header.

   --stats-site=[FORMAT:]FILE
       Save Site stats in format FORMAT, in file FILE.

       FORMAT can be human or csv.  - is shorthand for stdout and h is	short-
       hand for	human.

       The CSV output format is

       ID,ParentID,URL,Status,Link,Method,Size,SizeDecompressed,Transfer-
       Time,ResponseTime,Encoding,Verification

	      `ID` unique ID for a stats record.

	      `ParentID` ID of the parent document, relevant for `--recursive` mode.

	      `URL` URL	of the document.

	      `Status` HTTP response code or 0 if not applicable.

	      `Link` 1 means 'direkt link', 0 means 'redirection link'.

	      `Method` 1,2,3 mean GET, HEAD, POST request type.

	      `Size` size of downloaded	body (theoretical value	for HEAD requests).

	      `SizeDecompressed` size of decompressed body (0 for HEAD requests).

	      `TransferTime` ms	between	start of request and completed download.

	      `ResponseTime` ms	between	start of request and first response packet.

	      `Encoding` 0,1,2,3,4,5 mean server side compression was 'identity', 'gzip', 'deflate', 'lzma/xz',	'bzip2', 'brotli', 'zstd', 'lzip'

	      `Verification` PGP verification status. 0,1,2,3 mean 'none',  'valid', 'invalid',	'bad', 'missing'.

   Download Options
   --bind-address=ADDRESS
       When making client TCP/IP connections, bind to ADDRESS on the local ma-
       chine.  ADDRESS may be specified	as a hostname or IP address.  This op-
       tion can	be useful if your machine is bound to multiple IPs.

   --bind-interface=INTERFACE
       When  making  client TCP/IP connections,	bind to	INTERFACE on the local
       machine.	 INTERFACE may be specified as the name	for a  Network	Inter-
       face.   This  option can	be useful if your machine has multiple Network
       Interfaces.  However, the option	works only when	wget2 is run with ele-
       vated  privileges  (On  GNU/Linux:  root	 /   sudo   or	 sudo	setcap
       cap_net_raw+ep <path to wget|wget2>).

   -t, --tries=number
       Set number of tries to number.  Specify 0 or inf	for infinite retrying.
       The  default  is	 to retry 20 times, with the exception of fatal	errors
       like "connection	refused" or "not found"	(404), which are not retried.

   --retry-on-http-error=list
       Specify a comma-separated list of HTTP codes in which Wget2 will	 retry
       the  download.	The elements of	the list may contain wildcards.	 If an
       HTTP code starts	with the character `!' it won't	be  downloaded.	  This
       is useful when trying to	download something with	exceptions.  For exam-
       ple, retry every	failed download	if error code is not 404:

		wget2 --retry-on-http-error=*,\!404 https://example.com/

       Please  keep  in	 mind that "200" is the	only forbidden code.  If it is
       included	on the status list Wget2 will ignore it.  The max.  number  of
       download	attempts is given by the --tries option.

   -O, --output-document=file
       The  documents  will  not  be written to	the appropriate	files, but all
       will be concatenated together and written to file.  If  -  is  used  as
       file, documents will be printed to standard output, disabling link con-
       version.	  Use  ./-  to	print to a file	literally named	-.  To not get
       Wget2 status messages mixed with	file content, use  -q  in  combination
       with -O-	(This is different to how Wget 1.x behaves).

       Using  -r  or  -p  with -O may not work as you expect: Wget2 won't just
       download	the first file to file and then	download  the  rest  to	 their
       normal names: all downloaded content will be placed in file.

       A  combination  with -nc	is only	accepted if the	given output file does
       not exist.

       When used along with the	-c option,  Wget2  will	 attempt  to  continue
       downloading  the	 file whose name is passed to the option, irrespective
       of whether the actual file already exists on disk or not.  This	allows
       users  to  download  a  file with a temporary name alongside the	actual
       file.

       Note that a combination with -k is only permitted  when	downloading  a
       single document,	as in that case	it will	just convert all relative URIs
       to  external ones; -k makes no sense for	multiple URIs when they're all
       being downloaded	to a single file; -k can be used only when the	output
       is a regular file.

       Compatibility-Note:  Wget  1.x  used  to	treat -O as analogous to shell
       redirection.  Wget2 does	not handle the option similarly.   Hence,  the
       file  will not always be	newly created.	The file's timestamps will not
       be affected unless it is	actually written to.  As a result, both	-c and
       -N options are now supported in conjunction with	this option.

   -nc,	--no-clobber
       If a file is downloaded more than once in the same  directory,  Wget2's
       behavior	 depends  on  a	few options, including -nc.  In	certain	cases,
       the local file will be clobbered, or overwritten, upon  repeated	 down-
       load.  In other cases it	will be	preserved.

       When  running  Wget2  without  -N, -nc, -r, or -p, downloading the same
       file in the same	directory will result in the original copy of file be-
       ing preserved and the second copy being named file.1.  If that file  is
       downloaded  yet	again, the third copy will be named file.2, and	so on.
       (This is	also the behavior with -nd, even if -r or -p are  in  effect.)
       Use --keep-extension to use an alternative file naming pattern.

       When  -nc  is  specified,  this	behavior is suppressed,	and Wget2 will
       refuse to download newer	copies of file.	 Therefore, ""no-clobber""  is
       actually	a misnomer in this mode	- it's not clobbering that's prevented
       (as  the	 numeric  suffixes  were  already  preventing clobbering), but
       rather the multiple version saving that's prevented.

       When running Wget2 with -r or -p, but without -N, -nd, or -nc, re-down-
       loading a file will result in the new copy simply overwriting the  old.
       Adding  -nc  will  prevent  this	behavior, instead causing the original
       version to be preserved and any newer copies on the server  to  be  ig-
       nored.

       When  running  Wget2 with -N, with or without -r	or -p, the decision as
       to whether or not to download a newer copy of a file depends on the lo-
       cal and remote timestamp	and size of the	file.  -nc may not  be	speci-
       fied at the same	time as	-N.

       A  combination  with -O/--output-document is only accepted if the given
       output file does	not exist.

       Note that when -nc is specified,	files with the suffixes	.html or  .htm
       will  be	 loaded	from the local disk and	parsed as if they had been re-
       trieved from the	Web.

   --backups=backups
       Before (over)writing a file, back up an existing	file by	 adding	 a  .1
       suffix  to the file name.  Such backup files are	rotated	to .2, .3, and
       so on, up to backups (and lost beyond that).

   -c, --continue
       Continue	getting	a partially-downloaded file.  This is useful when  you
       want  to	 finish	up a download started by a previous instance of	Wget2,
       or by another program.  For instance:

		wget2 -c https://example.com/tarball.gz

       If there	is a file named	tarball.gz in  the  current  directory,	 Wget2
       will  assume  that it is	the first portion of the remote	file, and will
       ask the server to continue the retrieval	from an	offset	equal  to  the
       length of the local file.

       Note  that  you	don't need to specify this option if you just want the
       current invocation of Wget2 to retry downloading	a file should the con-
       nection be lost midway through.	This is	the default behavior.  -c only
       affects resumption of downloads started prior  to  this	invocation  of
       Wget2, and whose	local files are	still sitting around.

       Without -c, the previous	example	would just download the	remote file to
       tarball.gz.1, leaving the truncated tarball.gz file alone.

       If  you	use  -c	 on a non-empty	file, and it turns out that the	server
       does not	support	continued downloading, Wget2 will refuse to start  the
       download	 from scratch, which would effectively ruin existing contents.
       If you really want the download to start	from scratch, remove the file.

       If you use -c on	a file which is	of  equal  size	 as  the  one  on  the
       server, Wget2 will refuse to download the file and print	an explanatory
       message.	  The same happens when	the file is smaller on the server than
       locally (presumably because it was changed on  the  server  since  your
       last  download  attempt).   Because  "continuing" is not	meaningful, no
       download	occurs.

       On the other side of the	coin, while using -c, any file	that's	bigger
       on  the	server	than locally will be considered	an incomplete download
       and only	"(length(remote) - length(local))" bytes  will	be  downloaded
       and tacked onto the end of the local file.  This	behavior can be	desir-
       able  in	certain	cases.	For instance, you can use wget2	-c to download
       just the	new portion that's been	appended to a data collection  or  log
       file.

       However,	if the file is bigger on the server because it's been changed,
       as  opposed  to	just  appended	to, you'll end up with a garbled file.
       Wget2 has no way	of verifying that the local file  is  really  a	 valid
       prefix  of  the remote file.  You need to be especially careful of this
       when using -c in	conjunction with -r, since every file will be  consid-
       ered as an "incomplete download"	candidate.

       Another	instance  where	you'll get a garbled file if you try to	use -c
       is if you have a	lame HTTP proxy	that inserts a "transfer  interrupted"
       string  into  the local file.  In the future a "rollback" option	may be
       added to	deal with this case.

       Note that -c only works with HTTP  servers  that	 support  the  "Range"
       header.

   --start-pos=OFFSET
       Start  downloading  at  zero-based  position OFFSET.  Offset may	be ex-
       pressed in bytes, kilobytes with	the k'	  suffix,  or  megabytes  with
       them' suffix, etc.

       --start-pos  has	 higher	 precedence over --continue.  When --start-pos
       and --continue are both specified, Wget2	will emit a warning then  pro-
       ceed as if --continue was absent.

       Server support for continued download is	required, otherwise -start-pos
       cannot help.  See -c for	details.

   --progress=type
       Select  the  type of the	progress indicator you wish to use.  Supported
       indicator types are none	and bar.

       Type bar	draws an ASCII progress	bar graphics (a.k.a "thermometer" dis-
       play) indicating	the status of retrieval.

       If the output is	a TTY, bar is the default.   Else,  the	 progress  bar
       will be switched	off, except when using --force-progress.

       The  type  `dot'	is currently not supported, but	won't trigger an error
       to not break wget command lines.

       The parameterized types bar:force and bar:force:noscroll	will  add  the
       effect of --force-progress.  These are accepted for better wget compat-
       ibility.

   --force-progress
       Force Wget2 to display the progress bar in any verbosity.

       By  default, Wget2 only displays	the progress bar in verbose mode.  One
       may however, want Wget2 to display the progress bar on screen  in  con-
       junction	 with  any other verbosity modes like --no-verbose or --quiet.
       This is often a desired a property when invoking	Wget2 to download sev-
       eral small/large	files.	In such	a case,	Wget2 could simply be  invoked
       with this parameter to get a much cleaner output	on the screen.

       This  option  will  also	force the progress bar to be printed to	stderr
       when used alongside the --output-file option.

   -N, --timestamping
       Turn on time-stamping.

   --no-if-modified-since
       Do not send If-Modified-Since header in -N mode.	 Send preliminary HEAD
       request instead.	 This has only effect in -N mode.

   --no-use-server-timestamps
       Don't set the local file's timestamp by the one on the server.

       By default, when	a file is downloaded, its timestamps are set to	 match
       those  from  the	remote file.  This allows the use of --timestamping on
       subsequent invocations of Wget2.	 However, it is	 sometimes  useful  to
       base the	local file's timestamp on when it was actually downloaded; for
       that purpose, the --no-use-server-timestamps option has been provided.

   -S, --server-response
       Print the response headers sent by HTTP servers.

   --spider
       When invoked with this option, Wget2 will behave	as a Web spider, which
       means  that  it	will  not download the pages, just check that they are
       there.  For example, you	can use	Wget2 to check your bookmarks:

		wget2 --spider --force-html -i bookmarks.html

       This feature needs much more work for Wget2 to get close	to  the	 func-
       tionality of real web spiders.

   -T seconds, --timeout=seconds
       Set  the	 network  timeout  to  seconds seconds.	 This is equivalent to
       specifying --dns-timeout, --connect-timeout, and	--read-timeout,	all at
       the same	time.

       When interacting	with the network, Wget2	 can  check  for  timeout  and
       abort the operation if it takes too long.  This prevents	anomalies like
       hanging	reads  and infinite connects.  The only	timeout	enabled	by de-
       fault is	a 900-second read timeout.  Setting a timeout to 0 disables it
       altogether.  Unless you know what you are doing,	 it  is	 best  not  to
       change the default timeout settings.

       All timeout-related options accept decimal values, as well as subsecond
       values.	 For example, 0.1 seconds is a legal (though unwise) choice of
       timeout.	 Subsecond timeouts are	useful for  checking  server  response
       times or	for testing network latency.

   --dns-timeout=seconds
       Set  the	DNS lookup timeout to seconds seconds.	DNS lookups that don't
       complete	within the specified time will fail.  By default, there	is  no
       timeout	on  DNS	 lookups,  other  than	that implemented by system li-
       braries.

   --connect-timeout=seconds
       Set the connect timeout to seconds seconds.  TCP	connections that  take
       longer  to  establish will be aborted.  By default, there is no connect
       timeout,	other than that	implemented by system libraries.

   --read-timeout=seconds
       Set the read (and write)	timeout	to seconds  seconds.   The  "time"  of
       this  timeout refers to idle time: if, at any point in the download, no
       data is received	for more than the specified number of seconds, reading
       fails and the download is restarted.  This option does not directly af-
       fect the	duration of the	entire download.

       Of course, the remote server may	choose	to  terminate  the  connection
       sooner than this	option requires.  The default read timeout is 900 sec-
       onds.

   --limit-rate=amount
       Limit the download speed	to amount bytes	per second.  Amount may	be ex-
       pressed	in bytes, kilobytes with the k suffix, or megabytes with the m
       suffix.	For example, --limit-rate=20k will limit the retrieval rate to
       20KB/s.	This is	useful when, for whatever reason, you don't want Wget2
       to consume the entire available bandwidth.

       This option allows the use of decimal numbers, usually  in  conjunction
       with power suffixes; for	example, --limit-rate=2.5k is a	legal value.

       Note  that  Wget2  implements  the limiting by sleeping the appropriate
       amount of time after a network read that	took less time than  specified
       by  the rate.  Eventually this strategy causes the TCP transfer to slow
       down to approximately the specified rate.  However, it  may  take  some
       time for	this balance to	be achieved, so	don't be surprised if limiting
       the rate	doesn't	work well with very small files.

   -w seconds, --wait=seconds
       Wait  the  specified  number of seconds between the retrievals.	Use of
       this option is recommended, as it lightens the server  load  by	making
       the  requests  less  frequent.	Instead	of in seconds, the time	can be
       specified in minutes using the "m" suffix, in hours using  "h"  suffix,
       or in days using	"d" suffix.

       Specifying  a  large  value for this option is useful if	the network or
       the destination host is down, so	that Wget2 can	wait  long  enough  to
       reasonably  expect the network error to be fixed	before the retry.  The
       waiting interval	specified by this function  is	influenced  by	--ran-
       dom-wait, which see.

   --waitretry=seconds
       If  you	don't want Wget2 to wait between every retrieval, but only be-
       tween retries of	failed downloads, you can use this option.  Wget2 will
       use linear backoff, waiting 1 second after the first failure on a given
       file, then waiting 2 seconds after the second failure on	that file,  up
       to the maximum number of	seconds	you specify.

       By default, Wget2 will assume a value of	10 seconds.

   --random-wait
       Some  web sites may perform log analysis	to identify retrieval programs
       such as Wget2 by	looking	for statistically significant similarities  in
       the  time  between  requests.   This option causes the time between re-
       quests to vary between 0.5 and 1.5 ### wait  seconds,  where  wait  was
       specified  using	 the  --wait option, in	order to mask Wget2's presence
       from such analysis.

       A 2001 article in a publication devoted to  development	on  a  popular
       consumer	 platform  provided  code to perform this analysis on the fly.
       Its author suggested blocking at	the class C address  level  to	ensure
       automated  retrieval  programs  were blocked despite changing DHCP-sup-
       plied addresses.

       The --random-wait option	was inspired by	this  ill-advised  recommenda-
       tion  to	 block many unrelated users from a web site due	to the actions
       of one.

   --no-proxy[=exceptions]
       If no argument is given,	 we  try  to  stay  backward  compatible  with
       Wget1.x and don't use proxies, even if the appropriate *_proxy environ-
       ment variable is	defined.

       If  a  comma-separated list of exceptions (domains/IPs) is given, these
       exceptions are accessed	without	 using	a  proxy.   It	overrides  the
       `no_proxy' environment variable.

   -Q quota, --quota=quota
       Specify	download  quota	 for  automatic	 retrievals.  The value	can be
       specified in bytes (default), kilobytes (with k suffix),	 or  megabytes
       (with m suffix).

       Note that quota will never affect downloading a single file.  So	if you
       specify

		wget2 -Q10k https://example.com/bigfile.gz

       all of the bigfile.gz will be downloaded.  The same goes	even when sev-
       eral  URLs  are	specified  on the command-line.	 However, quota	is re-
       spected when retrieving either recursively,  or	from  an  input	 file.
       Thus you	may safely type

		wget2 -Q2m -i sites

       download	will be	aborted	when the quota is exceeded.

       Setting quota to	0 or to	inf unlimits the download quota.

   --restrict-file-names=modes
       Change  which  characters  found	 in remote URLs	must be	escaped	during
       generation of local filenames.  Characters that are restricted by  this
       option are escaped, i.e.	replaced with %HH, where HH is the hexadecimal
       number  that  corresponds to the	restricted character.  This option may
       also be used to force all alphabetical cases to be either lower-	or up-
       percase.

       By default, Wget2 escapes the characters	that are not valid or safe  as
       part of file names on your operating system, as well as control charac-
       ters  that are typically	unprintable.  This option is useful for	chang-
       ing these defaults, perhaps because you are downloading to a non-native
       partition, or because you want to disable escaping of the control char-
       acters, or you want to further restrict characters to only those	in the
       ASCII range of values.

       The modes are a comma-separated set of  text  values.   The  acceptable
       values  are  unix, windows, nocontrol, ascii, lowercase,	and uppercase.
       The values unix and windows are mutually	exclusive (one	will  override
       the  other),  as	 are  lowercase	and uppercase.	Those last are special
       cases, as they do not change the	set of characters that	would  be  es-
       caped,  but  rather  force  local  file paths to	be converted either to
       lower- or uppercase.

       When "unix" is specified, Wget2 escapes the character / and the control
       characters in the ranges	0-31 and 128-159.   This  is  the  default  on
       Unix-like operating systems.

       When  "windows" is given, Wget2 escapes the characters ,	|, /, :, ?, ",
       *, <, >,	and the	control	characters in the ranges 0-31 and 128-159.  In
       addition	to this, Wget2 in Windows mode uses + instead of : to separate
       host and	port in	local file names, and uses @ instead of	?  to separate
       the query portion of the	file name from the  rest.   Therefore,	a  URL
       that would be saved as www.xemacs.org:4300/search.pl?input=blah in Unix
       mode would be saved as www.xemacs.org+4300/search.pl@input=blah in Win-
       dows mode.  This	mode is	the default on Windows.

       If  you	specify	nocontrol, then	the escaping of	the control characters
       is also switched	off.  This option may make sense when  you  are	 down-
       loading	URLs  whose  names contain UTF-8 characters, on	a system which
       can save	and display filenames in UTF-8 (some possible byte values used
       in UTF-8	byte sequences fall in the range of values designated by Wget2
       as "controls").

       The ascii mode is used to specify that any bytes	whose values are  out-
       side the	range of ASCII characters (that	is, greater than 127) shall be
       escaped.	  This can be useful when saving filenames whose encoding does
       not match the one used locally.

   -4, --inet4-only, -6, --inet6-only
       Force connecting	to IPv4	or IPv6	addresses.  With --inet4-only  or  -4,
       Wget2  will  only  connect to IPv4 hosts, ignoring AAAA records in DNS,
       and refusing to connect to IPv6	addresses  specified  in  URLs.	  Con-
       versely,	with --inet6-only or -6, Wget2 will only connect to IPv6 hosts
       and ignore A records and	IPv4 addresses.

       Neither	options	 should	be needed normally.  By	default, an IPv6-aware
       Wget2 will use the address family specified by the host's  DNS  record.
       If  the	DNS responds with both IPv4 and	IPv6 addresses,	Wget2 will try
       them in sequence	until it finds one  it	can  connect  to.   (Also  see
       --prefer-family option described	below.)

       These options can be used to deliberately force the use of IPv4 or IPv6
       address families	on dual	family systems,	usually	to aid debugging or to
       deal  with  broken network configuration.  Only one of --inet6-only and
       --inet4-only may	be specified at	the  same  time.   Neither  option  is
       available in Wget2 compiled without IPv6	support.

   --prefer-family=none/IPv4/IPv6
       When given a choice of several addresses, connect to the	addresses with
       specified  address  family first.  The address order returned by	DNS is
       used without change by default.

       This avoids spurious errors and connect attempts	when  accessing	 hosts
       that  resolve  to both IPv6 and IPv4 addresses from IPv4	networks.  For
       example,	www.kame.net  resolves	to  2001:200:0:8002:203:47ff:fea5:3085
       and  to 203.178.141.194.	 When the preferred family is "IPv4", the IPv4
       address is used first; when the preferred family	is  "IPv6",  the  IPv6
       address	is  used  first; if the	specified value	is "none", the address
       order returned by DNS is	used without change.

       Unlike -4 and -6, this option doesn't inhibit  access  to  any  address
       family,	it only	changes	the order in which the addresses are accessed.
       Also note that the reordering performed by this option is  stable.   It
       doesn't	affect	order  of  addresses of	the same family.  That is, the
       relative	order of all IPv4 addresses and	of all IPv6 addresses  remains
       intact in all cases.

   --tcp-fastopen
       Enable support for TCP Fast Open	(TFO) (default:	off).

       TFO  reduces connection latency by 1 RT on "hot"	connections (2nd+ con-
       nection to the same host	in a certain amount of time).

       Currently this works on recent Linux  and  OSX  kernels,	 on  HTTP  and
       HTTPS.

       The  main  reasons  why	TFO is disabled	by default are - possible user
       tracking	issues - possible issues with middle boxes that	do not support
       TFO

       This  article  gives  has  more	details	 about	TFO  than  fits	 here:
       https://candrews.integral-
       blue.com/2019/03/the-sad-story-of-tcp-fast-open/

   --dns-cache-preload=file
       Load a list of IP / Name	tuples into the	DNS cache.

       The format of file is like /etc/hosts: IP-address whitespace Name

       This  allows  to	save domain name lookup	time, which is a bottleneck in
       some use	cases.	Also, the use of HOSTALIASES (which is	not  portable)
       can be mimicked by this option.

   --dns-cache
       Enable DNS caching (default: on).

       Normally,  Wget2	remembers the IP addresses it looked up	from DNS so it
       doesn't have to repeatedly contact the DNS server for the  same	(typi-
       cally small) set	of hosts it retrieves from.  This cache	exists in mem-
       ory only; a new Wget2 run will contact DNS again.

       However,	 it has	been reported that in some situations it is not	desir-
       able to cache host names, even for the duration of a short-running  ap-
       plication  like	Wget2.	 With  --no-dns-cache  Wget2  issues a new DNS
       lookup (more precisely, a new call to "gethostbyname" or	"getaddrinfo")
       each time it makes a new	connection.  Please note that this option will
       not affect caching that might be	performed by the resolving library  or
       by an external caching layer, such as NSCD.

   --retry-connrefused
       Consider	 "connection  refused"	a transient error and try again.  Nor-
       mally Wget2 gives up on a URL when it is	unable to connect to the  site
       because	failure	 to  connect is	taken as a sign	that the server	is not
       running at all and that retries would not help.	 This  option  is  for
       mirroring  unreliable  sites  whose servers tend	to disappear for short
       periods of time.

   --user=user,	--password=password
       Specify the username user and  password	password  for  HTTP  file  re-
       trieval.	  This	overrides the lookup of	credentials in the .netrc file
       (--netrc	is enabled by default).	 These parameters  can	be  overridden
       using  the  --http-user and --http-password options for HTTP(S) connec-
       tions.

       If neither --http-proxy-user nor	--http-proxy-password is  given	 these
       settings	are also taken for proxy authentication.

   --ask-password
       Prompt  for a password on the command line.  Overrides the password set
       by --password (if any).

   --use-askpass=command
       Prompt for a user and password using the	specified command.   Overrides
       the user	and/or password	set by --user/--password (if any).

   --no-iri
       Turn off	internationalized URI (IRI) support.  Use --iri	to turn	it on.
       IRI support is activated	by default.

       You can set the default state of	IRI support using the "iri" command in
       .wget2rc.  That setting may be overridden from the command line.

   --local-encoding=encoding
       Force  Wget2  to	use encoding as	the default system encoding.  That af-
       fects how Wget2 converts	URLs specified as  arguments  from  locale  to
       UTF-8 for IRI support.

       Wget2  use the function "nl_langinfo()" and then	the "CHARSET" environ-
       ment variable to	get the	locale.	 If it fails, ASCII is used.

   --remote-encoding=encoding
       Force Wget2 to use encoding as  the  default  remote  server  encoding.
       That  affects how Wget2 converts	URIs found in files from remote	encod-
       ing to UTF-8 during a recursive fetch.  This options is only useful for
       IRI support, for	the interpretation of non-ASCII	characters.

       For HTTP, remote	encoding can be	found in  HTTP	"Content-Type"	header
       and in HTML "Content-Type http-equiv" meta tag.

   --input-encoding=encoding
       Use  the	 specified  encoding for the URLs read from --input-file.  The
       default is the local encoding.

   --unlink
       Force Wget2 to unlink file instead of clobbering	existing  file.	  This
       option is useful	for downloading	to the directory with hardlinks.

   --cut-url-get-vars
       Remove HTTP GET Variables from URLs.  For example "main.css?v=123" will
       be  changed to "main.css".  Be aware that this may have unintended side
       effects,	for example  "image.php?name=sun"  will	 be  changed  to  "im-
       age.php".   The	cutting	 happens before	adding the URL to the download
       queue.

   --cut-file-get-vars
       Remove HTTP GET Variables from filenames.  For example "main.css?v=123"
       will be changed to "main.css".

       Be aware	that this may have unintended side effects, for	 example  "im-
       age.php?name=sun"  will be changed to "image.php".  The cutting happens
       when saving the file, after downloading.

       File names obtained from	a "Content-Disposition"	 header	 are  not  af-
       fected  by this setting (see --content-disposition), and	can be a solu-
       tion for	this problem.

       When --trust-server-names is used, the redirection URL is  affected  by
       this setting.

   --chunk-size=size
       Download	 large	files  in multithreaded	chunks.	 This switch specifies
       the size	of the chunks, given in	bytes if no other byte	multiple  unit
       is specified.  By default it's set on 0/off.

   --max-threads=number
       Specifies  the  maximum number of concurrent download threads for a re-
       source.	The default is 5 but if	you want to allow more or  fewer  this
       is the option to	use.

   -s, --verify-sig[=fail|no-fail]
       Enable  PGP  signature verification (when not prefixed with no-).  When
       enabled Wget2 will  attempt  to	download  and  verify  PGP  signatures
       against their corresponding files.  Any file downloaded that has	a con-
       tent  type  beginning with application/ will cause Wget2	to request the
       signature for that file.

       The name	of the signature file is computed by appending	the  extension
       to  the	full path of the file that was just downloaded.	 The extension
       used is defined by the --signature-extensions option.  If  the  content
       type for	the signature request is application/pgp-signature, Wget2 will
       attempt to verify the signature against the original file.  By default,
       if  a  signature	 file cannot be	found (I.E.  the request for it	gets a
       404 status code)	Wget2 will exit	with an	error code.

       This behavior can be tuned using	the following arguments: * fail:  This
       is the default, meaning that this is the	value when you supply the flag
       without an argument.  Indicates that missing signature files will cause
       Wget2 to	exit with an error code.  * no-fail: This value	allows missing
       signature  files.   A 404 message will still be issued, but the program
       will exit normally (assuming no unrelated errors).

       Additionally, --no-verify-sig disables  signature  checking  altogether
       --no-verify-sig does not	allow any arguments.

   --signature-extensions
       Specify	the  file  extensions for signature files, without the leading
       ".".  You may specify multiple extensions as a  comma  separated	 list.
       All  the	 provided extensions will be tried simultaneously when looking
       for the signature file.	The default is "sig".

   --gnupg-homedir
       Specifies the gnupg home	directory to use when verifying	PGP signatures
       on downloaded files.  The default for this  is  your  system's  default
       home directory.

   --verify-save-failed
       Instructs Wget2 to keep files that don't	pass PGP signature validation.
       The default is to delete	files that fail	validation.

   --xattr
       Saves  documents	metadata as "user POSIX	Extended Attributes" (default:
       on).  This feature only works if	the file  system  supports  it.	  More
       info on https://freedesktop.org/wiki/CommonExtendedAttributes.

       Wget2  currently	 sets  * user.xdg.origin.url * user.xdg.referrer.url *
       user.mime_type *	user.charset

       To display the extended attributes  of  a  file	(Linux):  getfattr  -d
       <file>

   --metalink
       Follow/process metalink URLs without saving them	(default: on).

       Metalink	files describe downloads incl. mirrors,	files, checksums, sig-
       natures.	 This allows chunked downloads,	automatically taking the near-
       est  mirrors,  preferring the fastest mirrors and checking the download
       for integrity.

   --fsync-policy
       Enables disk syncing after each write (default: off).

   --http2-request-window=number
       Set max.	 number	of parallel streams per	 HTTP/2	 connection  (default:
       30).

   --keep-extension
       This  option  changes  the behavior for creating	a unique filename if a
       file already exists.

       The standard (default) pattern for file names  is  <filename>.<N>,  the
       new pattern is <basename>_<N>.<ext>.

       The  idea is to use such	files without renaming when the	use depends on
       the extension, like on Windows.

       This option doesn not change the	behavior of --backups.

   Directory Options
   -nd,	--no-directories
       Do not create a hierarchy of directories	when  retrieving  recursively.
       With this option	turned on, all files will get saved to the current di-
       rectory,	 without  clobbering  (if  a name shows	up more	than once, the
       filenames will get extensions .n).

   -x, --force-directories
       The opposite of -nd: create a hierarchy of  directories,	 even  if  one
       would  not  have	 been created otherwise.  E.g.	wget2 -x https://exam-
       ple.com/robots.txt will save the	 downloaded  file  to  example.com/ro-
       bots.txt.

   -nH,	--no-host-directories
       Disable	generation of host-prefixed directories.  By default, invoking
       Wget2 with -r https://example.com/ will create a	structure of  directo-
       ries beginning with example.com/.  This option disables such behavior.

   --protocol-directories
       Use  the	 protocol  name	 as a directory	component of local file	names.
       For example, with this option, wget2 -r	 https://example.com will save
       to https/example.com/...	rather than just to example.com/....

   --cut-dirs=number
       Ignore a	number of directory components.	 This is useful	for getting  a
       fine-grained  control over the directory	where recursive	retrieval will
       be saved.

       Take, for example, the directory	at  https://example.com/pub/sub/.   If
       you  retrieve  it  with	-r,  it	 will  be  saved  locally  under exam-
       ple.com/pub/sub/.  While	the -nH	option	can  remove  the  example.com/
       part,  you  are	still  stuck  with pub/sub/.  This is where --cut-dirs
       comes in	handy; it makes	Wget2 not "see"	a number of  remote  directory
       components.   Here are several examples of how --cut-dirs option	works.
       No options	 -> example.com/pub/sub/      --cut-dirs=1	-> ex-
       ample.com/sub/	     --cut-dirs=2	 ->   example.com/	   -nH
       ->  pub/sub/	 -nH --cut-dirs=1  -> sub/	-nH --cut-dirs=2  -> .
       If you just want	to get rid of the directory structure, this option  is
       similar	to  a  combination  of	-nd  and  -P.	However,  unlike  -nd,
       --cut-dirs does not lose	with subdirectories.  For instance,  with  -nH
       --cut-dirs=1,  a	beta/ subdirectory will	be placed to sub/beta/,	as one
       would expect.

   -P prefix, --directory-prefix=prefix
       Set directory prefix to prefix.	The directory prefix is	the  directory
       where all other files and subdirectories	will be	saved to, i.e. the top
       of  the	retrieval  tree.  The default is ., the	current	directory.  If
       the directory prefix doesn't exist, it will be created.

   HTTP	Options
   --default-page=name
       Use name	as the default file name when it isn't known (i.e.,  for  URLs
       that end	in a slash), instead of	index.html.

   --default-http-port=port
       Set the default port for	HTTP URLs (default: 80).

       This is mainly for testing purposes.

   --default-https-port=port
       Set the default port for	HTTPS URLs (default: 443).

       This is mainly for testing purposes.

   -E, --adjust-extension
       If  a file of type application/xhtml+xml	or text/html is	downloaded and
       the URL does not	end with the regexp \.[Hh][Tt][Mm][Ll]?,  this	option
       will cause the suffix .html to be appended to the local filename.  This
       is  useful, for instance, when you're mirroring a remote	site that uses
       .asp pages, but you want	the mirrored pages  to	be  viewable  on  your
       stock  Apache  server.	Another	good use for this is when you're down-
       loading CGI-generated materials.	 A URL like  https://example.com/arti-
       cle.cgi?25 will be saved	as article.cgi?25.html.

       Note  that  filenames  changed  in this way will	be re-downloaded every
       time you	re-mirror a site, because Wget2	 can't	tell  that  the	 local
       X.html file corresponds to remote URL X (since it doesn't yet know that
       the URL produces	output of type text/html or application/xhtml+xml.

       Wget2  will  also ensure	that any downloaded files of type text/css end
       in the suffix .css.

       At some point in	the future, this option	may well be  expanded  to  in-
       clude suffixes for other	types of content, including content types that
       are not parsed by Wget.

   --http-user=user, --http-password=password
       Specify	the  user  and password	for HTTP authentication.  According to
       the type	of the challenge, Wget will encode them	using either the  "ba-
       sic"  (insecure),  the  "digest",  or the Windows "NTLM"	authentication
       scheme.

       If possible, put	your credentials into ~/.netrc (see also  --netrc  and
       --netrc-file  options)  or into .wget2rc.  This is far more secure than
       using the command line which can	be seen	by any	other  user.   If  the
       passwords  are really important,	do not leave them lying	in those files
       either.	Edit the files and delete them after  Wget2  has  started  the
       download.

       In  ~/.netrc passwords may be double quoted to allow spaces.  Also, es-
       cape characters with a backslash	if needed.  A backslash	in a  password
       always needs to be escaped, so use \\ instead of	a single \.

       Also  see --use-askpass and --ask-password for an interactive method to
       provide your password.

   --http-proxy-user=user, --http-proxy-password=password
       Specify the user	and  password  for  HTTP  proxy	 authentication.   See
       --http-user for details.

   --http-proxy=proxies
       Set  comma-separated  list  of  HTTP proxies.  The environment variable
       `http_proxy' will be overridden.

       Exceptions can be set via the environment variable  `no_proxy'  or  via
       --no-proxy.

   --https-proxy=proxies
       Set  comma-separated  list  of HTTPS proxies.  The environment variable
       `https_proxy' will be overridden.

       Exceptions can be set via the environment variable  `no_proxy'  or  via
       --no-proxy.

   --no-http-keep-alive
       Turn  off  the  "keep-alive"  feature for HTTP(S) downloads.  Normally,
       Wget2 asks the server to	keep the connection open  so  that,  when  you
       download	 more  than one	document from the same server, they get	trans-
       ferred over the same TCP	connection.  This saves	time and at  the  same
       time reduces the	load on	the server.

       This  option  is	 useful	when, for some reason, persistent (keep-alive)
       connections don't work for you, for example due to a server bug or  due
       to the inability	of server-side scripts to cope with the	connections.

   --no-cache
       Disable	server-side  cache.   In this case, Wget2 will send the	remote
       server appropriate directives (Cache-Control:  no-  cache  and  Pragma:
       no-cache)  to get the file from the remote service, rather than return-
       ing the cached version.	This is	especially useful for  retrieving  and
       flushing	out-of-date documents on proxy servers.

       Caching is allowed by default.

   --no-cookies
       Disable	the  use  of cookies.  Cookies are a mechanism for maintaining
       server-side state.  The server sends the	 client	 a  cookie  using  the
       "Set-Cookie"  header, and the client responds with the same cookie upon
       further requests.  Since	cookies	allow the server owners	to keep	 track
       of  visitors  and for sites to exchange this information, some consider
       them a breach of	privacy.  The default  is  to  use  cookies;  however,
       storing cookies is not on by default.

   --load-cookies file
       Load  cookies  from file	before the first HTTP(S) retrieval.  file is a
       textual file in the format originally used  by  Netscape's  cookies.txt
       file.

       You  will  typically  use this option when mirroring sites that require
       that you	be logged in to	access some or all of their content.  The  lo-
       gin  process  typically	works by the web server	issuing	an HTTP	cookie
       upon receiving and verifying your credentials.  The cookie is then  re-
       sent by the browser when	accessing that part of the site, and so	proves
       your identity.

       Mirroring  such	a  site	 requires  Wget2 to send the same cookies your
       browser sends when communicating	with the site.	This  is  achieved  by
       --load-cookies:	simply	point Wget2 to the location of the cookies.txt
       file, and it will send the same cookies your browser would send in  the
       same  situation.	  Different browsers keep textual cookie files in dif-
       ferent locations:

       "Netscape 4.x." The cookies are in ~/.netscape/cookies.txt.

       "Mozilla	and Netscape 6.x." Mozilla's cookie file is also  named	 cook-
       ies.txt,	 located  somewhere under ~/.mozilla, in the directory of your
       profile.	  The  full  path  usually  ends  up  looking  somewhat	  like
       ~/.mozilla/default/some-weird- string/cookies.txt.

       "Internet Explorer." You	can produce a cookie file Wget2	can use	by us-
       ing  the	 File  menu, Import and	Export,	Export Cookies.	 This has been
       tested with Internet Explorer 5;	it is not guaranteed to	work with ear-
       lier versions.

       "Other browsers." If you	are using a different browser to  create  your
       cookies,	 --load-cookies	 will only work	if you can locate or produce a
       cookie file in the Netscape format that Wget2 expects.

       If you cannot use --load-cookies, there might still be an  alternative.
       If your browser supports	a "cookie manager", you	can use	it to view the
       cookies	used when accessing the	site you're mirroring.	Write down the
       name and	value of the cookie, and manually instruct Wget2 to send those
       cookies,	bypassing the "official" cookie	support:

		wget2 --no-cookies --header "Cookie: <name>=<value>"

   --save-cookies file
       Save cookies to file before exiting.  This will not save	 cookies  that
       have expired or that have no expiry time	(so-called "session cookies"),
       but also	see --keep-session-cookies.

   --keep-session-cookies
       When  specified,	 causes	 --save-cookies	 to also save session cookies.
       Session cookies are normally not	saved because they  are	 meant	to  be
       kept in memory and forgotten when you exit the browser.	Saving them is
       useful  on  sites  that require you to log in or	to visit the home page
       before you can access some pages.  With	this  option,  multiple	 Wget2
       runs are	considered a single browser session as far as the site is con-
       cerned.

       Since  the  cookie file format does not normally	carry session cookies,
       Wget2 marks them	with an	expiry timestamp of 0.	Wget2's	--load-cookies
       recognizes those	 as  session  cookies,	but  it	 might	confuse	 other
       browsers.   Also	 note  that cookies so loaded will be treated as other
       session cookies,	which means that if you	want  --save-cookies  to  pre-
       serve them again, you must use --keep-session-cookies again.

   --cookie-suffixes=file
       Load the	public suffixes	used for cookie	checking from the given	file.

       Normally,  the  underlying libpsl loads this data from a	system file or
       it has the data built in.  In some cases	you might want to load an  up-
       dated	PSL,	e.g. from    https://publicsuffix.org/list/public_suf-
       fix_list.dat.

       The PSL allows to prevent  setting  of  "super-cookies"	that  lead  to
       cookie  privacy	leakage.  More details can be found on https://public-
       suffix.org/.

   --ignore-length
       Unfortunately, some HTTP	servers	(CGI programs,	to  be	more  precise)
       send  out bogus "Content-Length"	headers, which makes Wget2 go wild, as
       it thinks not all the document was retrieved.  You can spot  this  syn-
       drome  if  Wget retries getting the same	document again and again, each
       time claiming that the (otherwise normal) connection has	closed on  the
       very same byte.

       With  this  option, Wget2 will ignore the "Content-Length" header as if
       it never	existed.

   --header=header-line
       Send header-line	along with the rest of the headers in  each  HTTP  re-
       quest.	The supplied header is sent as-is, which means it must contain
       name and	value separated	by colon, and must not contain newlines.

       You may define more than	one additional header by  specifying  --header
       more than once.

		wget2 --header='Accept-Charset:	iso-8859-2' \
		     --header='Accept-Language:	hr'	   \
		       https://example.com/

       Specification  of  an  empty  string as the header value	will clear all
       previous	user-defined headers.

       This option can be used to override headers otherwise  generated	 auto-
       matically.   This  example instructs Wget2 to connect to	localhost, but
       to specify example.com in the "Host" header:

		wget2 --header="Host: example.com" http://localhost/

   --max-redirect=number
       Specifies the maximum number of redirections to follow for a  resource.
       The  default is 20, which is usually far	more than necessary.  However,
       on those	occasions where	you want to allow more (or fewer), this	is the
       option to use.

   --proxy-user=user,	--proxy-password=password   [Not   implemented,	   use
       --http-proxy-password]
       Specify the username user and password password for authentication on a
       proxy  server.  Wget2 will encode them using the	"basic"	authentication
       scheme.

       Security	considerations similar to those	with  --http-password  pertain
       here as well.

   --referer=url
       Include	`Referer:  url'	header in HTTP request.	 Useful	for retrieving
       documents with server-side processing that assume they are always being
       retrieved by interactive	web browsers and only come out	properly  when
       Referer is set to one of	the pages that point to	them.

   --save-headers
       Save the	headers	sent by	the HTTP server	to the file, preceding the ac-
       tual contents, with an empty line as the	separator.

   -U agent-string, --user-agent=agent-string
       Identify	as agent-string	to the HTTP server.

       The  HTTP  protocol  allows  the	clients	to identify themselves using a
       "User-Agent" header field.  This	enables	distinguishing the  WWW	 soft-
       ware,  usually for statistical purposes or for tracing of protocol vio-
       lations.	 Wget normally identifies as Wget/version, version  being  the
       current version number of Wget.

       However,	 some  sites have been known to	impose the policy of tailoring
       the output according to the "User-Agent"-supplied  information.	 While
       this  is	 not  such a bad idea in theory, it has	been abused by servers
       denying information to clients other than (historically)	 Netscape  or,
       more  frequently,  Microsoft Internet Explorer.	This option allows you
       to change the "User-Agent" line issued by Wget.	Use of this option  is
       discouraged, unless you really know what	you are	doing.

       Specifying empty	user agent with	--user-agent=""	instructs Wget2	not to
       send the	"User-Agent" header in HTTP requests.

   --post-data=string, --post-file=file
       Use  POST  as  the  method for all HTTP requests	and send the specified
       data in the request body.  -post-data sends  string  as	data,  whereas
       --post-file  sends the contents of file.	 Other than that, they work in
       exactly the same	way.  In particular, they both expect content  of  the
       form "key1=value1&key2=value2", with percent-encoding for special char-
       acters;	the  only difference is	that one expects its content as	a com-
       mand-line parameter and the other accepts its content from a file.   In
       particular,  --post-file	 is not	for transmitting files as form attach-
       ments: those must appear	as "key=value"	data  (with  appropriate  per-
       cent-coding)  just like everything else.	 Wget2 does not	currently sup-
       port "multipart/form-data" for transmitting POST	data;  only  "applica-
       tion/x-www-form-urlencoded".   Only  one	of --post-data and --post-file
       should be specified.

       Please note that	wget2 does not require the content to be of  the  form
       "key1=value1&key2=value2", and neither does it test for it.  Wget2 will
       simply  transmit	whatever data is provided to it.  Most servers however
       expect the POST data to be in the above	format	when  processing  HTML
       Forms.

       When  sending a POST request using the --post-file option, Wget2	treats
       the file	as a binary file and will send every character in the POST re-
       quest without stripping trailing	newline	or formfeed  characters.   Any
       other  control  characters  in  the text	will also be sent as-is	in the
       POST request.

       Please be aware that Wget2 needs	to know	the size of the	POST  data  in
       advance.	 Therefore the argument	to --post-file must be a regular file;
       specifying  a  FIFO  or something like /dev/stdin won't work.  It's not
       quite clear how to work around this limitation  inherent	 in  HTTP/1.0.
       Although	 HTTP/1.1  introduces  chunked	transfer  that doesn't require
       knowing the request length in advance, a	client can't use  chunked  un-
       less  it	 knows	it's talking to	an HTTP/1.1 server.  And it can't know
       that until it receives a	response, which	in turn	requires  the  request
       to have been completed -	a chicken-and-egg problem.

       If  Wget2 is redirected after the POST request is completed, its	behav-
       iour depends on the response code returned by the server.  In case of a
       301 Moved Permanently, 302 Moved	Temporarily or 307 Temporary Redirect,
       Wget2 will, in accordance with RFC2616, continue	to  send  a  POST  re-
       quest.	In case	a server wants the client to change the	Request	method
       upon redirection, it should send	a 303 See Other	response code.

       This example shows how to log in	to a server using POST and  then  pro-
       ceed  to	 download the desired pages, presumably	only accessible	to au-
       thorized	users:

		# Log in to the	server.	 This can be done only once.
		wget2 --save-cookies cookies.txt \
		     --post-data  'user=foo&password=bar' \
		     http://example.com/auth.php

		# Now grab the page or pages we	care about.
		wget2 --load-cookies cookies.txt \
		     -p	http://example.com/interesting/article.php

       If the server is	using session cookies to  track	 user  authentication,
       the  above will not work	because	--save-cookies will not	save them (and
       neither will browsers) and the cookies.txt file will be empty.  In that
       case use	--keep-session-cookies along with --save-cookies to force sav-
       ing of session cookies.

   --method=HTTP-Method
       For the purpose of RESTful scripting, Wget2  allows  sending  of	 other
       HTTP   Methods	without	  the	need  to  explicitly  set  them	 using
       --header=Header-Line.  Wget2 will use whatever string is	passed	to  it
       after --method as the HTTP Method to the	server.

   --body-data=Data-String, --body-file=Data-File
       Must  be	 set when additional data needs	to be sent to the server along
       with the	Method specified using --method.  --body-data sends string  as
       data, whereas --body-file sends the contents of file.  Other than that,
       they work in exactly the	same way.

       Currently, --body-file is not for transmitting files as a whole.	 Wget2
       does not	currently support "multipart/form-data"	for transmitting data;
       only  "application/x-www-form-urlencoded".   In the future, this	may be
       changed so that wget2 sends the --body-file as a	complete file  instead
       of  sending  its	 contents  to  the server.  Please be aware that Wget2
       needs to	know the contents of BODY Data in advance, and hence the argu-
       ment to --body-file should be a regular file.  See  --post-file	for  a
       more  detailed  explanation.   Only  one	of --body-data and --body-file
       should be specified.

       If Wget2	is redirected after the	request	is completed, Wget2 will  sus-
       pend  the current method	and send a GET request till the	redirection is
       completed.  This	is true	for all	redirection response codes except  307
       Temporary Redirect which	is used	to explicitly specify that the request
       method  should not change.  Another exception is	when the method	is set
       to  "POST",  in	which  case  the  redirection  rules  specified	 under
       --post-data are followed.

   --content-disposition
       If  this	 is set	to on, experimental (not fully-functional) support for
       "Content-Disposition" headers is	enabled.  This can currently result in
       extra round-trips to the	server for a "HEAD" request, and is  known  to
       suffer from a few bugs, which is	why it is not currently	enabled	by de-
       fault.

       This  option  is	useful for some	file-downloading CGI programs that use
       "Content-Disposition" headers to	describe what the name of a downloaded
       file should be.

   --content-on-error
       If this is set to on, wget2 will	not skip the content when  the	server
       responds	with a http status code	that indicates error.

   --save-content-on
       This takes a comma-separated list of HTTP status	codes to save the con-
       tent for.

       You  can	 use '*' for ANY.  An exclamation mark (!)  in front of	a code
       means `exception'.

       Example 1: --save-content-on="*,!404" would save	 the  content  on  any
       HTTP status, except for 404.

       Example	2:  --save-content-on=404  would save the content only on HTTP
       status 404.

       The older --content-on-error behaves like --save-content-on=*.

   --trust-server-names
       If this is set to on, on	a redirect the last component of the  redirec-
       tion  URL  will	be used	as the local file name.	 By default it is used
       the last	component in the original URL.

   --auth-no-challenge
       If this option is given,	Wget2 will send	Basic HTTP authentication  in-
       formation (plaintext username and password) for all requests.

       Use  of this option is not recommended, and is intended only to support
       some few	obscure	servers, which never send  HTTP	 authentication	 chal-
       lenges,	 but  accept  unsolicited  auth	 info,	say,  in  addition  to
       form-based authentication.

   --compression=TYPE
       If this TYPE(identity, gzip, deflate, xz, lzma, br, bzip2,  zstd,  lzip
       or  any	combination  of	it) is given, Wget2 will set "Accept-Encoding"
       header accordingly.  --no-compression means no "Accept-Encoding"	header
       at all.	To set "Accept-Encoding" to a custom value, use	 --no-compres-
       sion in combination with	--header="Accept-Encoding: xxx".

       Compatibility-Note: none	type in	Wget 1.X has the same meaning as iden-
       tity type in Wget2.

   --download-attr=[strippath|usepath]
       The  download  HTML5  attribute may specify (or better: suggest)	a file
       name for	the href URL in	a and area tags.  This option tells  Wget2  to
       make  use  of  this file	name when saving.  The two possible values are
       `strippath' to strip the	path from the file name.  This is the default.

       The value `usepath' takes the file name as as including the  directory.
       This  is	very dangerous and we can't stress enough not to use it	on un-
       trusted input or	servers	!  Only	use this if you	really trust the input
       or the server.

   HTTPS (SSL/TLS) Options
       To support encrypted HTTP (HTTPS) downloads,  Wget2  must  be  compiled
       with an external	SSL library.  The current default is GnuTLS.  In addi-
       tion,  Wget2  also  supports HSTS (HTTP Strict Transport	Security).  If
       Wget2 is	compiled without SSL support, none of these options are	avail-
       able.

   --secure-protocol=protocol
       Choose the secure protocol to be	used (default: auto).

       Legal values are	auto, SSLv3, TLSv1, TLSv1_1, TLSv1_2, TLSv1_3 and PFS.

       If auto is used,	the TLS	library's default is used.

       Specifying SSLv3	forces the use of the SSL3.  This is useful when talk-
       ing to old and buggy SSL	server implementations that make it  hard  for
       the underlying TLS library to choose the	correct	protocol version.

       Specifying  PFS enforces	the use	of the so-called Perfect Forward Secu-
       rity cipher suites.  In short, PFS adds security	by creating a one-time
       key for each TLS	connection.  It	has a bit more CPU  impact  on	client
       and  server.   We  use known to be secure ciphers (e.g. no MD4) and the
       TLS protocol.

       TLSv1 enables TLS1.0 or higher.	 TLSv1_1  enables  TLS1.1  or  higher.
       TLSv1_2 enables TLS1.2 or higher.  TLSv1_3 enables TLS1.3 or higher.

       Any  other  protocol  string is directly	given to the TLS library, cur-
       rently GnuTLS, as a "priority" or "cipher" string.  This	is  for	 users
       who know	what they are doing.

   --https-only
       When in recursive mode, only HTTPS links	are followed.

   --no-check-certificate
       Don't  check  the  server certificate against the available certificate
       authorities.  Also don't	require	the URL	host name to match the	common
       name presented by the certificate.

       The  default  is	 to verify the server's	certificate against the	recog-
       nized certificate authorities, breaking the SSL handshake and  aborting
       the  download  if  the verification fails.  Although this provides more
       secure downloads, it does break interoperability	with some  sites  that
       worked	with   previous	  Wget	 versions,  particularly  those	 using
       self-signed, expired, or	otherwise invalid certificates.	  This	option
       forces an "insecure" mode of operation that turns the certificate veri-
       fication	errors into warnings and allows	you to proceed.

       If  you encounter "certificate verification" errors or ones saying that
       "common name doesn't match requested host name",	you can	use  this  op-
       tion  to	 bypass	 the verification and proceed with the download.  Only
       use this	option if you are otherwise convinced of the site's authentic-
       ity, or if you really don't care	about the validity of its certificate.
       It is almost always a bad idea  not  to	check  the  certificates  when
       transmitting  confidential or important data.  For self-signed/internal
       certificates, you should	download the certificate  and  verify  against
       that  instead of	forcing	this insecure mode.  If	you are	really sure of
       not desiring any	certificate verification, you can specify --check-cer-
       tificate=quiet to tell Wget2 to not print  any  warning	about  invalid
       certificates, albeit in most cases this is the wrong thing to do.

   --certificate=file
       Use  the	client certificate stored in file.  This is needed for servers
       that are	configured to require certificates from	the clients that  con-
       nect  to	 them.	Normally a certificate is not required and this	switch
       is optional.

   --certificate-type=type
       Specify the type	of the client certificate.  Legal values are PEM  (as-
       sumed by	default) and DER, also known as	ASN1.

   --private-key=file
       Read the	private	key from file.	This allows you	to provide the private
       key in a	file separate from the certificate.

   --private-key-type=type
       Specify	the type of the	private	key.  Accepted values are PEM (the de-
       fault) and DER.

   --ca-certificate=file
       Use file	as the file with the bundle of certificate authorities	("CA")
       to verify the peers.  The certificates must be in PEM format.

       Without this option Wget2 looks for CA certificates at the system-spec-
       ified locations,	chosen at OpenSSL installation time.

   --ca-directory=directory
       Specifies  directory  containing	 CA  certificates in PEM format.  Each
       file contains one CA certificate, and the file name is based on a  hash
       value  derived  from the	certificate.  This is achieved by processing a
       certificate  directory  with  the  "c_rehash"  utility  supplied	  with
       OpenSSL.	  Using	--ca-directory is more efficient than --ca-certificate
       when many certificates are installed because it allows Wget2  to	 fetch
       certificates on demand.

       Without this option Wget2 looks for CA certificates at the system-spec-
       ified locations,	chosen at OpenSSL installation time.

   --crl-file=file
       Specifies  a  CRL  file	in file.  This is needed for certificates that
       have been revocated by the CAs.

   --random-file=file
       [OpenSSL	and LibreSSL only] Use file as the source of random  data  for
       seeding	 the   pseudo-random   number  generator  on  systems  without
       /dev/urandom.

       On such systems the SSL library needs an	external source	of  randomness
       to initialize.  Randomness may be provided by EGD (see -egd-file	below)
       or  read	from an	external source	specified by the user.	If this	option
       is not specified, Wget2 looks for random	data in	$RANDFILE or, if  that
       is unset, in $HOME/.rnd.

       If you're getting the "Could not	seed OpenSSL PRNG; disabling SSL." er-
       ror, you	should provide random data using some of the methods described
       above.

   --egd-file=file
       [OpenSSL	 only]	Use  file  as  the EGD socket.	EGD stands for Entropy
       Gathering Daemon, a user-space program that collects data from  various
       unpredictable  system  sources and makes	it available to	other programs
       that might need it.  Encryption software,  such	as  the	 SSL  library,
       needs  sources  of  non-repeating  randomness to	seed the random	number
       generator used to produce cryptographically strong keys.

       OpenSSL allows the user to specify his own source of entropy using  the
       "RAND_FILE" environment variable.  If this variable is unset, or	if the
       specified  file	does  not produce enough randomness, OpenSSL will read
       random data from	EGD socket specified using this	option.

       If this option is not specified (and the	equivalent startup command  is
       not  used),  EGD	 is never contacted.  EGD is not needed	on modern Unix
       systems that support /dev/urandom.

   --hsts
       Wget2 supports HSTS (HTTP Strict	Transport Security, RFC	6797)  by  de-
       fault.  Use --no-hsts to	make Wget2 act as a non-HSTS-compliant UA.  As
       a  consequence,	Wget2 would ignore all the "Strict-Transport-Security"
       headers,	and would not enforce any existing HSTS	policy.

   --hsts-file=file
       By     default,	   Wget2     stores	its	HSTS	  data	    in
       $XDG_DATA_HOME/wget/.wget-hsts  or,  if	XDG_DATA_HOME  is  not set, in
       ~/.local/wget/.wget-hsts.  You can use --hsts-file to override this.

       Wget2 will use the supplied file	as the HSTS database.  Such file  must
       conform	to  the	 correct  HSTS database	format used by Wget.  If Wget2
       cannot parse the	provided file, the behaviour is	unspecified.

       To disable persistent storage use --no-hsts-file.

       The Wget2's HSTS	database is a plain text file.	Each line contains  an
       HSTS  entry  (ie.  a site that has issued a "Strict-Transport-Security"
       header and that therefore has specified a concrete HSTS	policy	to  be
       applied).   Lines  starting  with  a  dash  ("#")  are ignored by Wget.
       Please  note  that  in  spite  of  this	convenient   human-readability
       hand-hacking the	HSTS database is generally not a good idea.

       An  HSTS	entry line consists of several fields separated	by one or more
       whitespace:

		<hostname> SP [<port>] SP <include subdomains> SP <created> SP <max-age>

       The hostname and	port fields indicate the hostname and  port  to	 which
       the  given  HSTS	 policy	 applies.   The	port field may be zero,	and it
       will, in	most of	the cases.  That means that the	port number  will  not
       be  taken into account when deciding whether such HSTS policy should be
       applied on a given request (only	the hostname will be evaluated).  When
       port is different to zero, both the target hostname and the  port  will
       be  evaluated  and the HSTS policy will only be applied if both of them
       match.  This feature has	been included for testing/development purposes
       only.  The Wget2	testsuite (in testenv/)	creates	 HSTS  databases  with
       explicit	 ports with the	purpose	of ensuring Wget2's correct behaviour.
       Applying	HSTS policies to ports other than the default ones is discour-
       aged by RFC 6797	(see Appendix B	"Differences between HSTS  Policy  and
       Same-Origin  Policy").	Thus, this functionality should	not be used in
       production environments and port	will  typically	 be  zero.   The  last
       three  fields  do  what they are	expected to.  The field	include_subdo-
       mains can either	be 1 or	0 and it signals whether the subdomains	of the
       target domain should be part of the given HSTS  policy  as  well.   The
       created and max-age fields hold the timestamp values of when such entry
       was  created (first seen	by Wget) and the HSTS-defined value `max-age',
       which states how	long should that HSTS policy remain  active,  measured
       in  seconds  elapsed  since the timestamp stored	in created.  Once that
       time has	passed,	that HSTS policy will no  longer  be  valid  and  will
       eventually be removed from the database.

       If  you	supply	your  own HSTS database	via --hsts-file, be aware that
       Wget2 may modify	the provided file if any  change  occurs  between  the
       HSTS  policies  requested  by the remote	servers	and those in the file.
       When Wget2 exits, it effectively	updates	the HSTS database by rewriting
       the database file with the new entries.

       If the supplied file does not exist, Wget2 will create one.  This  file
       will  contain  the new HSTS entries.  If	no HSTS	entries	were generated
       (no  "Strict-Transport-Security"	 headers  were	sent  by  any  of  the
       servers)	then no	file will be created, not even an empty	one.  This be-
       haviour applies to the default database file (~/.wget-hsts) as well: it
       will not	be created until some server enforces an HSTS policy.

       Care  is	 taken	not  to	 override possible changes made	by other Wget2
       processes at the	same time over the HSTS	database.  Before dumping  the
       updated	HSTS  entries on the file, Wget2 will re-read it and merge the
       changes.

       Using a custom HSTS database and/or modifying an	existing one  is  dis-
       couraged.   For	more  information about	the potential security threats
       arose from such practice, see section 14	"Security  Considerations"  of
       RFC  6797, specially section 14.9 "Creative Manipulation	of HSTS	Policy
       Store".

   --hsts-preload
       Enable loading of a HSTS	Preload	List as	supported  by  libhsts.	  (de-
       fault: on, if built with	libhsts).

   --hsts-preload-file=file
       If built	with libhsts, Wget2 uses the HSTS data provided	by the distri-
       bution.	If there is no such support by the distribution	or if you want
       to load your own	file, use this option.

       The  data  file	must  be in DAFSA format as generated by libhsts' tool
       hsts-make-dafsa.

   --hpkp
       Enable HTTP Public Key Pinning (HPKP) (default: on).

       This is a Trust On First	Use (TOFU) mechanism to	add  another  security
       layer to	HTTPS (RFC 7469).

       The  certificate	 key data of a previously established TLS session will
       be compared with	the current data.  In case  both  doesn't  match,  the
       connection will be terminated.

   --hpkp-file=file
       By      default,	     Wget2     stores	  its	  HPKP	   data	    in
       $XDG_DATA_HOME/wget/.wget-hpkp or, if  XDG_DATA_HOME  is	 not  set,  in
       ~/.local/wget/.wget-hpkp.  You can use --hpkp-file to override this.

       Wget2  will use the supplied file as the	HPKP database.	Such file must
       conform to the correct HPKP database format used	 by  Wget.   If	 Wget2
       cannot parse the	provided file, the behaviour is	unspecified.

       To disable persistent storage use --no-hpkp-file.

   --tls-resume
       Enable TLS Session Resumption which is disabled as default.

       For TLS Session Resumption the session data of a	previously established
       TLS session is needed.

       There  are several security flaws related to TLS	1.2 session resumption
       which	    are	       explained	 in	    detail	   at:
       https://web.archive.org/web/20171103231804/https://blog.fil-
       ippo.io/we-need-to-talk-about-session-tickets/

   --tls-session-file=file
       By    default,	 Wget2	  stores    its	   TLS	  Session    data   in
       $XDG_DATA_HOME/wget/.wget-session or, if	XDG_DATA_HOME is not  set,  in
       ~/.local/wget/.wget-session.   You  can use --tls-session-file to over-
       ride this.

       Wget2 will use the supplied file	as the	TLS  Session  database.	  Such
       file  must  conform  to the correct TLS Session database	format used by
       Wget.  If Wget2 cannot parse the	provided file, the  behaviour  is  un-
       specified.

       To disable persistent storage use --no-tls-session-file.

   --tls-false-start
       Enable TLS False	start (default:	on).

       This reduces TLS	negotiation by one RT and thus speeds up HTTPS connec-
       tions.

       More details at https://tools.ietf.org/html/rfc7918.

   --check-hostname
       Enable TLS SNI verification (default: on).

   --ocsp
       Enable  OCSP  server  access to check the possible revocation the HTTPS
       server certificate(s) (default: off).

       This procedure is pretty	slow (connect to  server,  HTTP	 request,  re-
       sponse)	and  thus we support OSCP stapling (server sends OCSP response
       within TLS handshake) and persistent OCSP caching.

   --ocsp-date
       Check if	OCSP response is too old.  (default: on)

   --ocsp-nonce
       Allow nonce checking when verifying OCSP	response.  (default: on)

   --ocsp-server
       Set OCSP	server address (default: OCSP server given in certificate).

   --ocsp-stapling
       Enable support for OCSP stapling	(default: on).

   --ocsp-file=file
       By   default,	Wget2	 stores	   its	  TLS	 Session    data    in
       $XDG_DATA_HOME/wget/.wget-ocsp  or,  if	XDG_DATA_HOME  is  not set, in
       ~/.local/wget/.wget-ocsp.  You can use --ocsp-file to override this.

       Wget2 will use the supplied file	as the OCSP database.  Such file  must
       conform	to  the	 correct  OCSP database	format used by Wget.  If Wget2
       cannot parse the	provided file, the behaviour is	unspecified.

       To disable persistent OCSP caching use --no-ocsp-file.

   --dane (experimental)
       Enable DANE certificate verification (default: off).

       In case the server verification fails due to  missing  CA  certificates
       (e.g. empty  certification pool), this option enables checking the TLSA
       DNS entries via DANE.

       You should have DNSSEC set up to	avoid MITM attacks.  Also, the	desti-
       nation host's DNS entries need to be set	up for DANE.

       Warning:	This option or its behavior may	change or may be removed with-
       out further notice.

   --http2
       Enable HTTP/2 protocol (default:	on).

       Wget2  requests	HTTP/2	via  ALPN.   If	available it is	preferred over
       HTTP/1.1.  Up to	30 streams are used in parallel	within a  single  con-
       nection.

   --http2-only
       Resist  on  using HTTP/2	and error if a server doesn't accept it.  This
       is mainly for testing.

   --https-enforce=mode
       Sets how	to deal	with URLs that are not explicitly HTTPS	(where	scheme
       isn't https://) (default: none)

   mode=none
       Use HTTP	for URLs without scheme.  In recursive operation the scheme of
       the parent document is taken as default.

   mode=soft
       Try  HTTPS first	when the scheme	is HTTP	or not given.  On failure fall
       back to HTTP.

   mode=hard
       Only use	HTTPS, no matter if a HTTP scheme is given  or	not.   Do  not
       fall back to HTTP.

   Recursive Retrieval Options
   -r, --recursive
       Turn on recursive retrieving.  The default maximum depth	is 5.

   -l depth, --level=depth
       Specify recursion maximum depth level depth.

   --delete-after
       This option tells Wget2 to delete every single file it downloads, after
       having done so.	It is useful for pre- fetching popular pages through a
       proxy, e.g.:

		wget2 -r -nd --delete-after https://example.com/~popular/page/

       The  -r option is to retrieve recursively, and -nd to not create	direc-
       tories.

       Note that when -delete-after is specified, --convert-links is  ignored,
       so .orig	files are simply not created in	the first place.

   -k, --convert-links
       After  the  download  is	complete, convert the links in the document to
       make them suitable for local viewing.  This affects not only the	 visi-
       ble  hyperlinks,	 but  any  part	of the document	that links to external
       content,	such as	embedded images, links to style	sheets,	hyperlinks  to
       non-HTML	content, etc.

       Each link will be changed in one	of the two ways:

       1. The  links  to  files	 that  have  been  downloaded by Wget2 will be
	  changed to refer to the file they point to as	a relative link.

	   Example:  if	  the	downloaded   file   /foo/doc.html   links   to
	   /bar/img.gif,  also	downloaded,  then the link in doc.html will be
	   modified to point to	../bar/img.gif.	 This kind  of	transformation
	   works reliably for arbitrary	combinations of	directories.

       2. The  links  to  files	that have not been downloaded by Wget2 will be
	  changed to include host name and absolute path of the	location  they
	  point	to.

	   Example: if the downloaded file /foo/doc.html links to /bar/img.gif
	   (or	to ../bar/img.gif), then the link in doc.html will be modified
	   to point to https://example.com/bar/img.gif.

       Because of this,	local browsing works reliably: if a  linked  file  was
       downloaded,  the	link will refer	to its local name; if it was not down-
       loaded, the link	will refer to its full Internet	 address  rather  than
       presenting a broken link.  The fact that	the former links are converted
       to relative links ensures that you can move the downloaded hierarchy to
       another directory.

       Note  that  only	 at the	end of the download can	Wget2 know which links
       have been downloaded.  Because of that, the work	done  by  -k  will  be
       performed at the	end of all the downloads.

   --convert-file-only
       This  option  converts  only the	filename part of the URLs, leaving the
       rest of the URLs	untouched.  This filename part is  sometimes  referred
       to  as the "basename", although we avoid	that term here in order	not to
       cause confusion.

       It works	particularly well in conjunction with --adjust-extension,  al-
       though this coupling is not enforced.  It proves	useful to populate In-
       ternet caches with files	downloaded from	different hosts.

       Example:	if some	link points to //foo.com/bar.cgi?xyz with --adjust-ex-
       tension	 asserted   and	 its  local  destination  is  intended	to  be
       ./foo.com/bar.cgi?xyz.css,  then	 the  link  would  be	converted   to
       //foo.com/bar.cgi?xyz.css.   Note  that only the	filename part has been
       modified.  The rest of the URL has been left untouched,	including  the
       net  path  ("//")  which	would otherwise	be processed by	Wget2 and con-
       verted to the effective scheme (ie.  "https://").

   -K, --backup-converted
       When converting a file, back up the original version with a .orig  suf-
       fix.  Affects the behavior of -N.

   -m, --mirror
       Turn on options suitable	for mirroring.	This option turns on recursion
       and  time-stamping,  sets  infinite  recursion  depth.  It is currently
       equivalent to -r	-N -l inf.

   -p, --page-requisites
       This option causes Wget2	to download all	the files that	are  necessary
       to  properly  display  a	given HTML page.  This includes	such things as
       inlined images, sounds, and referenced stylesheets.

       Ordinarily, when	downloading a single HTML page,	 any  requisite	 docu-
       ments  that  may	 be  needed to display it properly are not downloaded.
       Using -r	together with -l can help, but since Wget2 does	not ordinarily
       distinguish between external and	inlined	documents,  one	 is  generally
       left with "leaf documents" that are missing their requisites.

       For  instance,  say  document  1.html contains an <IMG> tag referencing
       1.gif and an <A>	tag pointing to	external document  2.html.   Say  that
       2.html  is  similar but that its	image is 2.gif and it links to 3.html.
       Say this	continues up to	some arbitrarily high number.

       If one executes the command:

		wget2 -r -l 2 https://<site>/1.html

       then 1.html, 1.gif, 2.html, 2.gif, and 3.html will be  downloaded.   As
       you  can	 see,  3.html  is without its requisite	3.gif because Wget2 is
       simply counting the number of hops (up to 2) away from 1.html in	 order
       to determine where to stop the recursion.  However, with	this command:

		wget2 -r -l 2 -p https://<site>/1.html

       all  the	 above	files and 3.html's requisite 3.gif will	be downloaded.
       Similarly,

		wget2 -r -l 1 -p https://<site>/1.html

       will cause 1.html, 1.gif, 2.html, and  2.gif  to	 be  downloaded.   One
       might think that:

		wget2 -r -l 0 -p https://<site>/1.html

       would download just 1.html and 1.gif, but unfortunately this is not the
       case,  because  -l  0 is	equivalent to -l inf, that is, infinite	recur-
       sion.  To download a single HTML	page (or a handful of them, all	speci-
       fied on the command-line	or in a	-i URL input file) and its (or	their)
       requisites, simply leave	off -r and -l:

		wget2 -p https://<site>/1.html

       Note  that Wget2	will behave as if -r had been specified, but only that
       single page and its requisites will be  downloaded.   Links  from  that
       page to external	documents will not be followed.	 Actually, to download
       a  single  page	and all	its requisites (even if	they exist on separate
       websites), and make sure	the lot	displays properly locally, this	author
       likes to	use a few options in addition to -p:

		wget2 -E -H -k -K -p https://<site>/<document>

       To finish off this topic, it's worth knowing that Wget2's  idea	of  an
       external	 document  link	 is any	URL specified in an <A>	tag, an	<AREA>
       tag, or a <LINK>	tag other than <LINK REL="stylesheet">.

   --strict-comments
       Obsolete	option for compatibility with Wget1.x.	 Wget2	always	termi-
       nates comments at the first occurrence of -->, as popular browsers do.

   --robots
       Enable the Robots Exclusion Standard (default: on).

       For  each  visited  domain, follow rules	specified in /robots.txt.  You
       should respect the domain owner's rules and turn	this off only for very
       good reasons.

       Whether enabled or disabled, the	 robots.txt  file  is  downloaded  and
       scanned	for  sitemaps.	These are lists	of pages / files available for
       download	that not necessarily are available via recursive scanning.

       This behavior can be switched off by --no-follow-sitemaps.

   Recursive Accept/Reject Options
   -A acclist, --accept=acclist, -R rejlist, --reject=rejlist
       Specify comma-separated lists of	file name suffixes or patterns to  ac-
       cept  or	reject.	 Note that if any of the wildcard characters, *, ?, [,
       ], appear in an element of acclist or rejlist, it will be treated as  a
       pattern,	 rather	 than a	suffix.	 In this case, you have	to enclose the
       pattern into quotes to prevent your shell from expanding	it, like in -A
       "*.mp3" or -A '*.mp3'.

   --accept-regex=urlregex, --reject-regex=urlregex
       Specify a regular expression to accept or reject	file names.

   --regex-type=regextype
       Specify the regular expression type.  Possible types are	posix or pcre.
       Note that to be able to use pcre	type, wget2 has	to  be	compiled  with
       libpcre support.

   --filter-urls
       Apply  the accept and reject filters on the URL before starting a down-
       load.

   -D domain-list, --domains=domain-list
       Set domains to be followed.  domain-list	is a comma-separated  list  of
       domains.	 Note that it does not turn on -H.

   --exclude-domains=domain-list
       Specify the domains that	are not	to be followed.

   --follow-sitemaps
       Parsing	the  sitemaps from robots.txt and follow the links.  (default:
       on).

       This option is on for recursive downloads whether you specify  --robots
       or  -no-robots.	 Following  the	URLs found in sitemaps can be switched
       off with	--no-follow-sitemaps.

   --follow-tags=list
       Wget2 has an internal table of HTML tag / attribute pairs that it  con-
       siders  when looking for	linked documents during	a recursive retrieval.
       If a user wants only a subset of	those tags to be considered,  however,
       he  or  she  should be specify such tags	in a comma-separated list with
       this option.

   --ignore-tags=list
       This is the opposite of the --follow-tags option.  To skip certain HTML
       tags when recursively looking for documents to download,	 specify  them
       in a comma-separated list.

       In the past, this option	was the	best bet for downloading a single page
       and its requisites, using a command-line	like:

		wget2 --ignore-tags=a,area -H -k -K -r https://<site>/<document>

       However,	the author of this option came across a	page with tags like ""
       and  came  to  the  realization	that specifying	tags to	ignore was not
       enough.	 One  can't  just  tell	 Wget2	to  ignore  "",	 because  then
       stylesheets will	not be downloaded.  Now	the best bet for downloading a
       single  page  and its requisites	is the dedicated --page-requisites op-
       tion.

   --ignore-case
       Ignore case when	matching files and directories.	 This  influences  the
       behavior	of -R, -A, -I, and -X options.	For example, with this option,
       -A  "*.txt" will	match file1.txt, but also file2.TXT, file3.TxT,	and so
       on.  The	quotes in the example are to prevent the shell from  expanding
       the pattern.

   -H, --span-hosts
       Enable spanning across hosts when doing recursive retrieving.

   -L, --relative [Not implemented yet]
       Follow relative links only.  Useful for retrieving a specific home page
       without any distractions, not even those	from the same hosts.

   -I list, --include-directories=list
       Specify	a  comma-separated list	of directories you wish	to follow when
       downloading.  Elements of the list may contain wildcards.

		wget2 -r https://webpage.domain	--include-directories=*/pub/*/

       Please keep in mind that	*/pub/*/ is the	same as	/*/pub/*/ and that  it
       matches directories, not	strings.  This means that */pub	doesn't	affect
       files  contained	 at  e.g. /directory/something/pub  but	/pub/* matches
       every subdir of /pub.

   -X list, --exclude-directories=list
       Specify a comma-separated list of directories you wish to exclude  from
       download.  Elements of the list may contain wildcards.

		wget2 -r https://gnu.org --exclude-directories=/software

   -I /	-X combinations
       Please  be  aware  that the behavior of this combination	of flags works
       slightly	different than in wget1.x.

       If -I is	given first, the default is `exclude all'.   If	 -X  is	 given
       first, the default is `include all'.

       Multiple	 -I/-X	options	are processed `first to	last'.	The last match
       is relevant.

		Example: `-I /pub -X /pub/trash` would download	all from /pub/ except from /pub/trash.
		Example: `-X /pub -I /pub/important` would download all	except from /pub where only /pub/important would be downloaded.

       To reset	the list  (e.g.	to  ignore  -I/-X  from	 .wget2rc  files)  use
       --no-include-directories	or --no-exclude-directories.

   -np,	--no-parent
       Do not ever ascend to the parent	directory when retrieving recursively.
       This  is	a useful option, since it guarantees that only the files below
       a certain hierarchy will	be downloaded.

   --filter-mime-type=list
       Specify a comma-separated list of MIME types that will  be  downloaded.
       Elements	of list	may contain wildcards.	If a MIME type starts with the
       character  `!'  it  won't  be downloaded, this is useful	when trying to
       download	something with exceptions.  If server doesn't specify the MIME
       type of a file it will  be  considered  as  `application/octet-stream'.
       For example, download everything	except images:

		wget2 -r https://<site>/<document> --filter-mime-type=*,\!image/*

       It  is also useful to download files that are compatible	with an	appli-
       cation of your system.  For instance, download every file that is  com-
       patible	with  LibreOffice  Writer  from	 a website using the recursive
       mode:

		wget2 -r https://<site>/<document> --filter-mime-type=$(sed -r '/^MimeType=/!d;s/^MimeType=//;s/;/,/g' /usr/share/applications/libreoffice-writer.desktop)

   Plugin Options
   --list-plugins
       Print a list all	available plugins and exit.

   --local-plugin=file
       Load file as plugin.

   --plugin=name
       Load a plugin with a given name from the	configured plugin directories.

   --plugin-dirs=directories
       Set plugin directories.	directories is a comma-separated list  of  di-
       rectories.

   --plugin-help
       Print the help messages from all	loaded plugins.

   --plugin-opt=option
       Set a plugin specific command line option.

       option is in the	format <plugin_name>.<option>[=value].

Environment
       Wget2  supports	proxies	for both HTTP and HTTPS	retrievals.  The stan-
       dard way	to specify proxy location, which Wget recognizes, is using the
       following environment variables:

       http_proxy

       https_proxy

       If set, the http_proxy and https_proxy  variables  should  contain  the
       URLs of the proxies for HTTP and	HTTPS connections respectively.

       no_proxy

       This  variable  should  contain a comma-separated list of domain	exten-
       sions proxy should not be used for.  For	 instance,  if	the  value  of
       no_proxy	 is .example.com, proxy	will not be used to retrieve documents
       from *.example.com.

Exit Status
       Wget2 may return	one of several error codes if it encounters problems.

		0   No problems	occurred.

		1   Generic error code.

		2   Parse error. For instance, when parsing command-line options, the .wget2rc or .netrc...

		3   File I/O error.

		4   Network failure.

		5   SSL	verification failure.

		6   Username/password authentication failure.

		7   Protocol errors.

		8   Server issued an error response.

		9   Public key missing from keyring.

		10  A Signature	verification failed.

       With the	exceptions of 0	and 1,	the  lower-numbered  exit  codes  take
       precedence over higher-numbered ones, when multiple types of errors are
       encountered.

Startup	File
       Sometimes  you  may wish	to permanently change the default behaviour of
       GNU Wget2.  There is a better way to do this than setting an  alias  in
       your  shell.   GNU  Wget2  allows  you  to  set all options permanently
       through its startup up, .wget2rc.

       While .wget2rc is the main initialization file used by GNU Wget2, it is
       not a good idea to store	passwords in this file.	 This is  because  the
       startup	file  maybe publicly readable or backed	up in version control.
       This is why Wget2 also reads the	 contents  of  $HOME/.netrc  when  re-
       quired.

       The  .wget2rc file follows a very similar syntax	to the .wgetrc that is
       read by GNU Wget.  It varies in only those  places  where  the  command
       line options vary between Wget1.x and Wget2.

   Wget2rc Location
       When  initializing,  Wget2  will	 attempt  to read the "global" startup
       file, which is located at `/usr/local/etc/wget2rc' by default (or  some
       prefix other than `/usr/local', if Wget2	was not	installed there).  The
       global  startup	file  is useful	for system administrators to enforce a
       default policy, such as setting the path	to the certificate store, pre-
       loading a HSTS list, etc.

       Then, Wget2 will	look for the user's initialization file.  If the  user
       has passed the --config command line option, Wget2 will try to load the
       file  that  it  points  to.  If file does not exist, or if it cannot be
       read, Wget2 will	make no	further	attempts to  read  any	initialization
       files.

       If  the environment variable WGET2RC is set, Wget2 will try to load the
       file at this location.  If the file does	not exist, or if it cannot  be
       read,  Wget2  will  make	 no further attempts to	read an	initialization
       file.

       If, --config is not passed and WGET2RC is not set, Wget2	 will  attempt
       to  load	 the  user's initialization file from a	location as defined by
       the XDG Base Directory Specification.  It will read the first, and only
       the first file it finds from the	following locations:

       1. $XDG_CONFIG_HOME/wget/wget2rc

       2. $HOME/.config/wget/wget2rc

       3. $HOME/.wget2rc

       Having an initialization	file at	$HOME/.wget2rc is  deprecated.	 If  a
       file  is	found there, Wget2 will	print a	warning	about it.  Support for
       reading from this file will be removed in the future.

       The fact	that the user's	settings are loaded after the system-wide ones
       means that in case of a collision, the  user's  wget2rc	overrides  the
       global wget2rc.

Bugs
       You  are	 welcome  to  submit bug reports via the GNU Wget2 bug tracker
       <https://gitlab.com/gnuwget/wget2/issues>.

       Before actually submitting a bug	report,	please try  to	follow	a  few
       simple guidelines.

       1. Please  try  to ascertain that the behavior you see really is	a bug.
	  If Wget2 crashes, it's a bug.	 If Wget2 does	not  behave  as	 docu-
	  mented,  it's	 a  bug.  If things work strange, but you are not sure
	  about	the way	they are supposed to work, it might well be a bug, but
	  you might want to double-check the  documentation  and  the  mailing
	  lists.

       2. Try  to repeat the bug in as simple circumstances as possible.  E.g.
	  if Wget2 crashes while downloading wget2 -rl0	  -kKE -t5  --no-proxy
	  https://example.com  -o /tmp/log, you	should try to see if the crash
	  is repeatable, and if	will occur with	a simpler set of options.  You
	  might	even try to start the download at the page where the crash oc-
	  curred to see	if that	page somehow triggered the crash.

       Also, while I will probably be interested to know the contents of  your
       .wget2rc	file, just dumping it into the debug message is	probably a bad
       idea.   Instead,	 you  should  first try	to see if the bug repeats with
       .wget2rc	moved out of the way.  Only if it turns	out that .wget2rc set-
       tings affect the	bug, mail me the relevant parts	of the file.

       3. Please start Wget2 with -d option and	send us	the  resulting	output
	  (or  relevant	 parts	thereof).  If Wget2 was	compiled without debug
	  support, recompile it.  It is	much easier to trace bugs  with	 debug
	  support on.

       Note:  please make sure to remove any potentially sensitive information
       from the	debug log before sending it to the bug address.	 The -d	 won't
       go  out	of  its	way to collect sensitive information, but the log will
       contain a fairly	complete transcript of Wget2's communication with  the
       server,	which  may  include  passwords	and pieces of downloaded data.
       Since the bug address is	publicly archived, you may assume that all bug
       reports are visible to the public.

       4. If Wget2 has crashed,	try to run it in a debugger,  e.g. gdb	`which
	  wget`	core and type "where" to get the backtrace.  This may not work
	  if  the system administrator has disabled core files,	but it is safe
	  to try.

Author
       Wget2 written by	Tim Rhsen <tim.ruehsen@gmx.de>

       Wget 1.x	originally written by Hrvoje Niki <hniksic@xemacs.org>

Copyright
       Copyright (C) 2012-2015 Tim Rhsen

       Copyright (C) 2015-2024 Free Software Foundation, Inc.

       Permission is granted to	copy, distribute and/or	modify	this  document
       under  the  terms of the	GNU Free Documentation License,	Version	1.3 or
       any later version published by the Free Software	 Foundation;  with  no
       Invariant  Sections,  with no Front-Cover Texts,	and with no Back-Cover
       Texts.  A copy of the license is	included in the	section	entitled  "GNU
       Free Documentation License".

GNU Wget2 User Manual						      WGET2(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=wget2&sektion=1&manpath=FreeBSD+Ports+14.3.quarterly>

home | help