<COMMENT>(--------------------------------------------------------------------)

<CHAPTER>(HTTPd Web Update\chapter_web_update)

<P> The <EMPHASIS>(Upd\bold)ate facility allows Web documents and file
environments to be administered from a standard browser.  This capability is
available to Web administrator and user alike.  Availability and capability
depends on the authorization environment within the server.

<P> It <EMPHASIS>(should be stressed\BOLD) that this is not designed as a full
hypertext administration or authoring tool, and for document preparation
relies on the editing capabilities of the <LITERAL>(<TEXTAREA>) widget of the
user's browser. It does however, allow <EMPHASIS>(ad-hoc changes\BOLD) to be
made to documents fairly easily, as well as allowing documents to be deleted,
and directories to be created and deleted.

<COMMENT>(....................................................................)

<COMMENT>(HTML=
<P> Consult the 
<A HREF="/httpd/-/updhelp.html">current <B>Upd</B>ate documentation</A> for
usage detail.

<P> Here is <A HREF="/upd/ht_root/">an example of the interface</A> (access may
have been denied).

<P><CENTER>
<TABLE CELLPADDING=0, CELLSPACING=0 BORDER=0>
<TR><TD ALIGN=left>
<IMG SRC="image.gif" BORDER=0 ALT="[graphic]" ALIGN=bottom>&nbsp;
<A HREF="update.gif" TARGET="_blank">UPDate Navigation Graphic</A>
<P>
<IMG SRC="image.gif" BORDER=0 ALT="[graphic]" ALIGN=bottom>&nbsp;
<A HREF="edit.gif" TARGET="_blank">UPDate Edit Graphic</A>
</TD></TR>
</TABLE>
</CENTER>
)

<COMMENT>(HTML/OFF)
<P> Consult the current <EMPHASIS>(Upd\BOLD)ate documentation for usage detail.
<P><BOX>(online hypertext link)
<P><BOX>(online graphic)
<P><BOX>(online graphic)
<COMMENT>(HTML/ON)

<COMMENT>(....................................................................)

<HEAD>(Update Access Permission\head_web_update_permission)

<P> If SSL is in use (see <REFERENCE>(chapter_ssl)) then username/password
privacy of the authorization environment is inherently secured via the
encrypted communications. To restrict web update functionality to this secure
environment add the following to the HTTPD$MAP configuration file:

<CODE_EXAMPLE>
  /upd/*  "403 Access denied."  ![sc:https]
<ENDCODE_EXAMPLE>

<P> Of course, the user must have write (POST/PUT) access to the document or
area on the server (i.e. the <EMPHASIS>(path)) and the server account have file
system permission to write into the <UNDERLINE>(parent directory).

<P> The server will report <QUOTE>(Insufficient privilege or object protection
violation ... /path/document) if it does not have file system permission to
write into a directory.

<P> Also see <REFERENCE>(head_auth_control_acls) for information on write
access control for the server account.

<COMMENT>(--------------------------------------------------------------------)

<CHAPTER>(Utilities\chapter_utilities)

<P> Foreign commands for external utilities (and the HTTPD control
functionality) will need to be assigned from the adminstration users' LOGIN.COM
either explicitly or by calling the

<COMMENT>(....................................................................)

<COMMENT>(HTML=
<A HREF="/ht_root/example/wasdverbs.com">HT_ROOT:[EXAMPLE]WASDVERBS.COM</A>
)

<COMMENT>(HTML/OFF)
HT_ROOT:[EXAMPLE]WASDVERBS.COM
<COMMENT>(HTML/ON)

<COMMENT>(....................................................................)

procedure.

<P>
<CODE_EXAMPLE>
  $ AB == "$HT_EXE:AB"
  $ HTTPD == "$HT_EXE:HTTPD"
  $ HTTPDMON == "$HT_EXE:HTTPDMON"
  $ QDLOGSTATS == "$HT_EXE:QDLOGSTATS"
  $ SCRUNCH == "$HT_EXE:SCRUNCH"
  $ UNSCRUNCH == "$HT_EXE:SCRUNCH/UNSCRUNCH"
  $ STREAMLF == "$HT_EXE:STREAMLF"
  $ WWWRKOUT == "$HT_EXE:WWWRKOUT"
<ENDCODE_EXAMPLE>

<COMMENT>(....................................................................)

<HEAD1>(Echo Facility\head_echo)

<P> Ever had to go to extraordinary lengths to find out exactly what your
browser is sending to the server? The server provides a request echo facility.
This merely returns the complete request as a plain-text document. This can be
used for for checking the request header lines being provided by the browser,
and can be valuable in the diagnosis of POSTed forms, etc.

<P> This facility must be enabled through a mapping rule entry.

<CODE_EXAMPLE>
  script /echo/* /echo/*
<ENDCODE_EXAMPLE>

<P> It may then be used with any request merely by inserting <QUOTE>(/echo) at
the start of the path, as in the following example.

<CODE_EXAMPLE>
  http://wasd.dsto.defence.gov.au/echo/ht_root/
<ENDCODE_EXAMPLE>

<COMMENT>(....................................................................)

<HEAD1>(Where Facility\head_where)

<P> Need to locate where VMS has the HTTPd files?  This simple facility maps
the supplied path then parses it to obtain a resulting VMS file specification.
<EMPHASIS>(This does not demonstrate whether the path actually exists!\BOLD)

<P> This facility must be enabled through a mapping rule entry.

<CODE_EXAMPLE>
  script /where/* /where/*
<ENDCODE_EXAMPLE>

<P> It may then be used with any request merely by inserting <QUOTE>(/where) at
the start of the path, as in the following example.

<CODE_EXAMPLE>
  http://wasd.dsto.defence.gov.au/where/ht_root/
<ENDCODE_EXAMPLE>

<COMMENT>(....................................................................)

<HEAD1>(Xray Facility\head_xray)

<P> The Xray facility returns a request's complete response, <EMPHASIS>(both
header and body\BOLD), as a plain text document.  Being able to <EMPHASIS>(see)
the internals of the response header as well as the contents of the body
rendered in plain text can often be valuable when developing scripts, etc.

<P> This facility must be enabled through a mapping rule entry.

<CODE_EXAMPLE>
  script /Xray/* /Xray/*
<ENDCODE_EXAMPLE>

<P> It may then be used with any request merely by inserting <QUOTE>(/xray) at
the start of the path, as in the following example.

<CODE_EXAMPLE>
  http://wasd.dsto.defence.gov.au/xray/ht_root/
<ENDCODE_EXAMPLE>

<COMMENT>(....................................................................)

<HEAD1>(Scrunch Utility\head_scrunch)

<P> The <QUOTE>(scrunch)er is used to decrease the processing overhead of
Server-Side Includes (SSI) files.  See the <QUOTE>(Environment Overview) for
more detail on this utility.

<P> A <EMPHASIS>(scrunched) SSI file is a variable length record file, where
each record  either comprises a single SSI directive, with the
<QUOTE>(<LITERAL>(<)!--#) beginning on the record boundary, or a record of
other text to be output (i.e. not beginning with <QUOTE>(<LITERAL>(<)!--#)).

<P> Why do this?  Well, if all SSI directives begin on a record boundary you
only have to check the first five characters of each record to establish
whether it should be interpreted or directly output!  This <EMPHASIS>(saves
checking every character of every record\BOLD) for the opening
<QUOTE>(<LITERAL>(<)) and the following <QUOTE>(!--#).

<P> Files that have been scrunched are basically unsuitable for editing (only
due to the often inappropriately sized records).  Previously scrunched files
may be returned to something (often exactly) resembling their original
condition using the /UNSCRUNCH qualifier.

<COMMENT>(....................................................................)

<HEAD1>(StreamLF Utility\head_streamlf)

<P> This utility converts VARIABLE format files to STREAM_LF. The WASD HTTPd
server access STREAM_LF files in block/IO-mode, far more efficiently that the
record-mode required by variable-record format files. Use
<QUOTE>(STREAMLF/HELP) for some basic usage information.

<P> <EMPHASIS>(NOTE: \BOLD) The server can also be configured to automatically
convert any VARIABLE record format files it encounters to STREAM_LF.

<COMMENT>(....................................................................)

<HEAD1>(HTTPd Monitor\head_httpdmon)

<P> The HTTP server may be monitored in real-time using the HTTPDMON utility.

<COMMENT>(....................................................................)

<COMMENT>(HTML=
<P><CENTER>
<IMG SRC="image.gif" BORDER=0 ALT="[graphic]" ALIGN=bottom>&nbsp;
<A HREF="httpdmon.gif" TARGET="_blank">HTTPDMON Graphic</A>
</CENTER>
)

<COMMENT>(HTML/OFF)
<P><BOX>(online graphic)
<COMMENT>(HTML/ON)

<COMMENT>(....................................................................)

<P> This utility continuously displays a screen of information comprising three
or four of the following sections: 

<LIST>(NUMBERED)

<LE> <EMPHASIS>(Process Information\BOLD)
<LINE>
HTTPd process information includes its up-time, CPU-time consumed (excluding 
any subprocesses), I/O counts, and memory utilization.  The <QUOTE>(Servers:)
item shows how many servers are currently running on the node/cluster.  Changes
in this count are indicated by the second, parenthesized number.

<LE> <EMPHASIS>(General Server Counters\BOLD)
<LINE>
The server counters keep track of the total connections received, accepted, 
rejected, etc., totals for each request type (file transfer, directory 
listing, image mapping, etc.).

<LE> <EMPHASIS>(Proxy Serving Counters\BOLD)
<LINE>
The server counters keep track of proxy serving connections, network and cache
traffic, cache status, etc.

<LE> <EMPHASIS>(Latest Request\BOLD)
<LINE>
This section provides the response status code, and some transaction
statistics, the service being accessed, originating host and HTTP request. 
Note that long request strings may be truncated (indicated by a bolded
elipsis).

<ENDLIST>

<P> The following shows example output (after WWWRKOUT server testing):

<PAGE>
<CODE_EXAMPLE>
 Port: 80   HTTPDMON v1.13.0 AXP (HTTPd v7.1)   Saturday, 22-JUL-2000 11:26:18

 Process: HTTPd:80  PID: 2020022F  User: HTTP$SERVER  Servers: 5(4)
      Up: 0 21:05:51.88  CPU: 0 07:34:19.99  Restart: 0
 Pg.Flts: 3526  Pg.Used: 37%  WsSize: 6402  WsPeak: 4729
     AST:  196/200   BIO:   97/100   BYT: 202270/202720  DIO:  100/100
     ENQ: 1989/2000  FIL:  298/300   PRC:     95/100      TQ:   26/30

 Connect: Accept:178212 Reject:0 Busy:0 Current:16 Peak:21  SSL: 0 (0%)
   Parse: 184865  Forbidden: 0  Redirect: Remote:0 Local:6654
 CONNECT: 0  GET: 164717  HEAD: 20148  POST: 0  PUT: 0
   Admin: 0  Cache: Load:48 Hit:39992/0  DECnet: CGI:3327 OSU:6655
     Dir: 6670 DCL: CLI:16730 CGI:9987 CGIplus:13310/13182 Spawned:168 Current:5
    File: 3384/0  IsMap: 0  Proxy: 64911  Put: 0  SSI: 16657  Upd: 9988

     1xx: 0  2xx: 157816  3xx: 3  4xx: 18496  5xx: 1864  (0 errors)
      Rx: 19,762,345  Tx: 1,053,847,437  (bytes)

   Proxy: enabled
 CONNECT: 0  GET: 58720  HEAD: 6191  POST: 0  PUT: 0
     Not: Cacheable Request:14555 Response:23786
 Network: Rx:118,463,055 Tx:7,208,716 (29%)  Accessed: 38356
  Lookup: Numeric:19 DNS:21 Cache:38317 Error:1
   Cache: Rx:2,863,617 Tx:320,164,012 (71%)  Read:26554/3 Write:10
  Device: DKA0: 4110480 blocks (2007MB)  Space: available
          2171744 used (1060MB 53%), 1938736 free (946MB 47%)
   Purge: 18 00:00:54, 98 files (2254/2412), 0 deleted (0/0)

    Time: 18 15:56:11  Status: 200  Rx: 95  Tx: 34479  Duration: 0.2400
 Service: beta.dsto.defence.gov.au:80  
    Host: beta.dsto.defence.gov.au (131.185.250.201)
 Request: GET /ht_root/exercise/64k.txt
<ENDCODE_EXAMPLE>

<P> The <QUOTE>(/HELP) qualifier provides a brief usage summary.

<P> This information is, in part, obtained from the following logical names:

<LIST>(UNNUMBERED)
<LE> <EMPHASIS>(HTTPD<EMPHASIS>(port)$COUNT1\BOLD)
<LE> <EMPHASIS>(HTTPD<EMPHASIS>(port)$COUNT2\BOLD)
<LE> <EMPHASIS>(HTTPD<EMPHASIS>(port)$PID\BOLD)
<LE> <EMPHASIS>(HTTPD<EMPHASIS>(port)$REQUEST\BOLD)
<ENDLIST>

<P> The server counter values are carried over when a server (re)starts 
(provided the system has stayed up).  To reset the counters use the on-line
server administration menu (see <REFERENCE>(chapter_server_admin)).

<P> If [DNSlookup] is disabled for the HTTP server the HTTPDMON utility
attempts to resolve the numeric address into a host name. This may be disabled
using the /NORESOLVE qualifier.

<COMMENT>(....................................................................)

<HEAD1>(ApacheBench\head_apache_bench)

<P> This server stress-test and benchmarking tool, as used in the Apache
Distribution, is included with the WASD package (sourced from
http://webperf.zeus.co.uk/ab.c), within

<COMMENT>(HTML=<A HREF="/ht_root/doc/misc/apache_group_licence.txt">license</A>)

<COMMENT>(HTML/OFF)
license
<COMMENT>(HTML/ON)

conditions.

<CODE_EXAMPLE>
  Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd.
  Copyright (c) 1998 The Apache Group.
<ENDCODE_EXAMPLE>

<P> <EMPHASIS>(ApacheBench will only compile and run for Alpha or VAX systems
with VMS 7.<EMPHASIS>(n) or greater available.\BOLD)  It is a simple but
effective tool, allowing a single resource to be requested from a server a
specified number of times and with a specified concurrency.  This can be used
to benchmark a server or servers, or be used to stress-test a server
configuration's handling of variable loads of specific resquests (before
exhausting process quotas, etc.)

<P> A small addition to functionality has been made.  The WASD ApacheBench
displays a count of the HTTP response categories received (i.e. the number of
2<EMPHASIS>(nn)s, 4<EMPHASIS>(nn)s, etc.)  This allows easier assessment of
the relevance of results (i.e. measuring performance of some aspect only to
find the results showed the performance of 404 message generation - and yes, an
annoying experience of the author's prompted the changes!)

<P>The following examples illustrate it's use.

<CODE_EXAMPLE>
  $ AB -H
  $ AB -C 10 -N 100 http://the.server.name/ht_root/exercise/0k.txt
  $ AB -C 50 -N 500 -K http://the.server.name/ht_root/exercise/64k.txt
  $ AB -C 10 -N 100 http://the.server.name/cgi-bin/cgi_symbols
<ENDCODE_EXAMPLE>

<COMMENT>(....................................................................)

<HEAD1>(qdLogStats\head_qdlogstats)

<P> <EMPHASIS>(Quick-and-Dirty LOG STATisticS\BOLD) is a utility to extract
very elementary statistics from Web server common/combined format log files. 
It is intended for those moments when we think <QUOTE>(I wonder how many times
that new archive has been downloaded?), <QUOTE>(How much data was transfered
during November?), <QUOTE>(How often is <EMPHASIS>(such-and-such) a client
using the authenticated <EMPHASIS>(so-and-so) service?), <QUOTE>(How much has
the mail service been used?) <HELLIPSIS> and want the results in a matter of
seconds (or at least a few tens of seconds ;^)

<P> A number of filters allow subsets of the log contents to be selected. 
These filters are simple <QUOTE>(sort-of-regular) expressions, not
case-sensitive (deliberately), can contain wildcards (such as asterisks (*),
question marks (?), and percent signs (%)) as well as <QUOTE>(semi-regular)
expressions (such as the range [a-z]).  THERE IS NO WAY (that I know of) TO
ESCAPE THESE RESERVED CHARACTERS! (This functionality uses decc$match_wild()
function.)   All matches are made by string pattern matching, hence a query
/AFTER=01-NOV cannot be done.  Of course date pattern matching can!

<P> Special constructs allow more complex expressions to be built up. 
Combinations of required and excluded strings may be specified in the one
expression.  When a string begins with a <QUOTE>(+{) it must be present for the
record not to be filtered out.  If it begins <QUOTE>(-{) then it must not be
present.  Such specifications must be terminated with a matching closure
<QUOTE>(}).

<P> A knowlege of the format and contents of the <EMPHASIS>(common) and
<EMPHASIS>(combined) log formats will assist in deciding which and to what
purpose filters should be used.  Record filtering is done in the same order as
is finally displayed, so <EMPHASIS>(method) would be processed before
<EMPHASIS>(user-agent) for instance.  Normally a record match terminates on the
first non-matched filter (to expedite processing).  To compare and report each
filter for every record apply the /ALL qualifier.  To view records as they are
processed use the /VIEW qualifier.  This by default displays all matched
records, but the optional =ALL or =NOMATCH parameters will display all records, 
or all those but the matches.

<P> <EMPHASIS>($ QDLOGSTATS <LITERAL>(log-file-spec [pattern qualifiers]
[other qualifiers])\BOLD)

<LIST>(UNNUMBERED)

<LE> <EMPHASIS>(/ALL\BOLD) compare and report on all supplied filters
<LE> <EMPHASIS>(/AUTHUSER=\BOLD) pattern (any authenticated username) 
<LE> <EMPHASIS>(/CLIENT=\BOLD) pattern (client host name or IP address)  
<LE> <EMPHASIS>(/DATETIME=\BOLD) pattern (<QUOTE>(11/Jun/1999:14:08:49 +0930))
<LE> <EMPHASIS>(/METHOD=\BOLD) pattern (HTTP <QUOTE>(GET), <QUOTE>(POST), etc.)  
<LE> <EMPHASIS>(/OUTPUT=\BOLD) file specification 
<LE> <EMPHASIS>(/PATH=\BOLD) pattern (URL path component only) 
<LE> <EMPHASIS>(/PROGRESS\BOLD) show progress during processing
<LINE> (a <QUOTE>(+) for each file started, a <QUOTE>(.) for each 1000 records
processed)
<LE> <EMPHASIS>(/QUERY=\BOLD) pattern (URL query component only) 
<LE> <EMPHASIS>(/REFERER=\BOLD) pattern (HTTP <QUOTE>(Referer:) field, COMBINED
only)
<LE> <EMPHASIS>(/USERAGENT=\BOLD) pattern (HTTP <QUOTE>(User-Agent:) field,
COMBINED only) 
<LE> <EMPHASIS>(/VIEW[=type]\BOLD) display matching log records (ALL, NOMATCH,
MATCH)

<ENDLIST>

<P> Examples:

<LIST>(UNNUMBERED)

<LE> Records from September 1999.

<CODE_EXAMPLE>
  $ QDLOGSTATS HT_LOGS:*1999*.LOG /DATE="*/SEP/1999*"
<ENDCODE_EXAMPLE>

<LE> Records where the browser was an X-based Netscape Navigator

<CODE_EXAMPLE>
    $ QDLOGSTATS HT_LOGS:*.LOG /USERAGENT=*MOZILLA*X11*
<ENDCODE_EXAMPLE>

<LE> Records of POST method requests

<CODE_EXAMPLE>
    $ QDLOGSTATS HT_LOGS:*.LOG /METHOD=POST
<ENDCODE_EXAMPLE>

<LE> Records requesting a particular path

<CODE_EXAMPLE>
    $ QDLOGSTATS HT_LOGS:*.LOG /PATH="/cgi-bin/*"
<ENDCODE_EXAMPLE>

<LE> Records with a query string (the second excludes those containing "grotty")

<CODE_EXAMPLE>
    $ QDLOGSTATS HT_LOGS:*.LOG /QUERY="%*"
    $ QDLOGSTATS HT_LOGS:*.LOG /QUERY="+{%*}-{*grotty*}"
<ENDCODE_EXAMPLE>

<LE> Records requesting a particular path, excluding the help script

<CODE_EXAMPLE>
    $ QDLOGSTATS HT_LOGS:*.LOG /PATH="+{/cgi-bin/*}-{/cgi-bin/help/*}"
<ENDCODE_EXAMPLE>

<LE> Select proxy records requesting (a) particular site(s)

<CODE_EXAMPLE>
    $ QDLOGSTATS HT_LOGS:*8080*.LOG /PATH="http://*.compaq.com*"
    $ QDLOGSTATS HT_LOGS:*8080*.LOG /METHOD=POST /PATH="http://*sex*.*/*" /VIEW
<ENDCODE_EXAMPLE>

<LE> Records where the request was authenticated

<CODE_EXAMPLE>
    $ QDLOGSTATS HT_LOGS:*.LOG /AUTHUSER="-{-}"
    $ QDLOGSTATS HT_LOGS:*.LOG /AUTHUSER=DANIEL
<ENDCODE_EXAMPLE>

<LE> Records where the request was authenticated, excluding DANIEL

<CODE_EXAMPLE>
    $ QDLOGSTATS HT_LOGS:*.LOG /AUTHUSER="-{-}-{DANIEL}"
<ENDCODE_EXAMPLE>

<ENDLIST>

<P> A CGI interface is also available.  It required authorization to be active
on the script.  See the source code for further details.

<COMMENT>(....................................................................)

<HEAD1>(Server Workout <EMPHASIS>((stress-test))\head_wwwrkout)

<P> The WWWRKOUT (<QUOTE>(World Wide Web Workout)) utility exercises an HTTP
server, both in the number of concurrent connections maintained and in the
number of back-to-back sequential connection requests and data transfers.

<P> This utility can be used to <EMPHASIS>(stress-test) the WASD VMS HTTP
server (or any other), or to make comparisons between it and other servers.
When stress-testing a server, evaluating performance or just using it to try
and break a test-bed server, it is best used from multiple, autonomous systems
concurrent.

<P> It sets up and maintains a specified number of concurrent connections to 
a server.  It reads a buffer of data from each connection in turn, where data 
is waiting (does not block), until the document transfer is complete and the 
connection closed by the server.  It then closes the local end and immediately 
reuses the now-free socket to initiate another sequence.  If enabled (it is by 
default), the utility attempts to reflect the real-world in varying the data 
transfer rate for each connection, by setting the number of bytes read during 
each read loop differently for each connection.  All transfered data is 
discarded. 

<P> The data transfer rate for each connection is displayed at connection
close. It is by default it is the effective transfer rate, that is the rate
from opening the connection to closing it, and so includes request processing
time, etc. If the <QUOTE>(/NOEFFECTIVE) qualifier is employed it measures the
document data transfer rate only. 

<P> Although a single document path may be specified on the command line it 
is preferable to supply a range of document paths, one per line in a plain 
text file.  Each document path and/or type specified should be different to 
the others, to exercise the server and file system cache.  Any number of paths 
may be specified in the file.  If the file is exhausted before the specified 
number of connections have been established the file contents are recycled 
from the first path.  If a path or a file of paths is not specified the 
utility just continually requests the welcome document. 

<P> To assess a server's total throughput choose paths that lead to large
documents (<LITERAL>(>) 50K), where the overhead of connection setup, rule
processing and transfer initiation are less significant than the data transfer
itself. The buffer size variation functionality should be disabled using the
<QUOTE>(/NOVARY) qualifier when assessing data transfer rates. Responsiveness
is better assessed using small documents (<LITERAL>(<) 2K), where the overhead
of the non-data-transfer activities is more significant.

<P><EMPHASIS>($ WWWRKOUT [server_host_name[:port]] [path] [qualifiers]\BOLD)

<LIST>(UNNUMBERED)

<LE> <EMPHASIS>(/[NO]BREAK\BOLD) will randomly break a small number of
connections during the data transfer (tests server recovery under those
circumstances)

<LE> <EMPHASIS>(/BUFFER=\BOLD) number of bytes to be read from server each 
time (default is 1024, will be modified by the default <QUOTE>(/VARY)
qualifier)

<LE> <EMPHASIS>(/COUNT=\BOLD) total number of connections and requests to be 
done (default is 100)

<LE> <EMPHASIS>(/[NO]EFFECTIVE\BOLD) measures data transfer rate from request
to close (if <QUOTE>(/NOEFFECTIVE) is applied the rate is measured during data
transfer only

<LE> <EMPHASIS>(/FILEOF=\BOLD) file name containing paths to documents

<LE> <EMPHASIS>(/HELP\BOLD) display brief usage information

<LE> <EMPHASIS>(/OUTPUT=\BOLD) file name for output

<LE> <EMPHASIS>(/PATH=\BOLD) single path to document to be retrieved

<LE> <EMPHASIS>(/PORT=\BOLD) IP port number of HTTP server (default is 80)

<LE> <EMPHASIS>(/PROXY=\BOLD) host name and port of proxy server

<LE> <EMPHASIS>(/SERVER=\BOLD) HTTP server host name

<LE> <EMPHASIS>(/SIMULTANEOUS=\BOLD) number of simultaneous connections to be 
set up at any one time (default is 10)

<LE> <EMPHASIS>(/[NO]VARY\BOLD) varies the size of the read buffer for each 
connection (default is vary)

<ENDLIST>

<P> Examples:

<CODE_EXAMPLE>
  $ WWWRKOUT
  $ WWWRKOUT www.server.host "/web/home.html"
  $ WWWRKOUT www.server.host:8080 /FILEOF=PATHS.TXT
  $ WWWRKOUT /SERVER=www.server.host /PORT=8080 /NOBREAK /NOVARY /FILEOF=PATHS.TXT
  $ WWWRKOUT www.server.host:8080 /FILEOF=PATHS.TXT /NOEFFECTIVE /NOVARY
  $ WWWRKOUT www.server.host /FILEOF=PATHS.TXT /COUNT=500 /SIMUL=20 /BUFFER=512
<ENDCODE_EXAMPLE>

<P> The <QUOTE>(/HELP) qualifier provides a brief usage summary.

<COMMENT>(--------------------------------------------------------------------)
