TL;DR $HTTP/DO=HELP provides a useful summary of command line actions.
It has been suggested that some sort of promotional of WASD's useful but
possibly more esoteric capabilities might be both profitable and interesting
(to the WASD community). As the info-WASD mailing list is relatively quiet
we could possibly stand an additional once-per-month posting without too much
effort. Less than a couple of pages.
I only employ a handful of directives regularly. A few more less regularly.
You are probably familiar with the likes of /DO=RESTART=NOW, /DO=EXIT=NOW,
/DO=MAP, /DO=AUTH and the like. Others sometimes need a reminder about
syntax. The server image may be asked for a refresher...
KLAATU$ HTTPD/DO=HELP
o AUTH reload authorization file
AUTH=CHECK elementary check of authorization file
(may require additional server command-line parameters)
AUTH=LOAD reload authorization file
AUTH=PURGE purge authentication records from cache
o AUTH=SKELKEY=_<name>:<psswd>[:<hours>] temporary authorisation
o CACHE=ON turn file caching on
CACHE=OFF turn file caching off
CACHE=PURGE purge all data cached
8< snip 8<
o WEBSOCKET=DISCONNECT all WebSocket connections
WEBSOCKET=DISCONNECT=<integer> this WebSocket connection number
WEBSOCKET=DISCONNECT=SCRIPT=<pattern> matching this script name
WEBSOCKET=DISCONNECT=USER=<pattern> matching this scripting user name
o ZERO zero all accounting
ZERO=NOTICED zero the 'errors noticed' accounting
ZERO=PROXY zero proxy accounting
ZERO=STATUS clear any STATUS message as displayed by HTTPDMON
KLAATU$
The suggested starting point were the /DO=NET=... directives.
8< snip 8<
o NET=LIST list all network connections
8< snip 8<
KLAATU$ HTTPD/DO=NET=LIST
Connect Service / Request Client Time Duration
---------- ---------------------------- ---------- -------- --------
2219->1841 https:klaatu.lan:443 router.lan 14:00:43 00:10:01
GET /cgi-bin/smonitor?classes=&DISK=6&IO=5&MODES=4&PROCESSES=3&ST...
2218->1841 https:klaatu.lan:443 router.lan 14:00:37 00:10:07
GET /cgi-bin/smonitor?classes=&DISK=6&IO=5&MODES=4&PROCESSES=3&ST...
2217->1841 https:klaatu.lan:443 router.lan 13:53:20 00:17:23
GET /cgi-bin/shttpdmon?populate=1
2212->1841 https:klaatu.lan:443 router.lan 13:39:50 00:30:53
GET /cgi-bin/smonitor?classes=&DISK=6&IO=5&MODES=4&PROCESSES=3&ST...
2203->1841 https:klaatu.lan:443 router.lan 13:14:32 00:56:12
GET /cgi-bin/smonitor?classes=&DISK=6&IO=5&MODES=4&PROCESSES=3&ST...
2199->1841 https:klaatu.lan:443 router.lan 13:06:58 01:03:46
GET /cgi-bin/smonitor?classes=&DISK=6&IO=5&MODES=4&PROCESSES=3&ST...
2170->1841 https:klaatu.lan:443 router.lan 11:51:55 02:18:48
GET /cgi-bin/smonitor?classes=&DISK=6&IO=5&MODES=4&PROCESSES=3&ST...
2118->1841 https:klaatu.lan:443 router.lan 09:52:41 04:18:03
GET /cgi-bin/sopcom?scroll=1&populate=1
->2226 https:klaatu.lan:443 router.lan 14:18:52 7.274s
current:0 peak:1 count:4
->2224 https:klaatu.lan:443 router.lan 14:18:41 18.69s
current:0 peak:1 count:1
->1841 https:klaatu.lan:443 router.lan 22:35:28 15:35:16
current:8 peak:9 count:120
0 HTTP/1.n, 8 via HTTP/2, 1 HTTP/2, 07-OCT-2022 14:10:44
KLAATU$
This shows all current connections (and requests in-progress) on my
development system (currently testing screper utilities). These are all
HTTP/2 connections (->2226, ->2224 and ->1841) and any associated requests
hanging off those connections (all of those nnnn->1841, e.g. 2118->1841).
HTTP/1.n connections are sans any '->'.
The current list is an outgrowth of a pre-HTTP/2 display, where there was a
one-to-one relationship between connection and request. Killing-off one
connection killed-off one connection and any in-progress request. With
HTTP/2, killing off one connection might take out multiple requests; dozens,
potentially hundreds of concurrent requests. There seemed to be a need for
awareness of the relationship beyond a simple number. It might have been
/DO=REQUEST=LIST but isn't because of persistent HTTP/1.n connections, and
now idle HTTP/2 connections.
A connection number is an internal number from 1 (startup) to n (current
count).
Requests in-progress are indicate by the request line.
The HTTP/2 connection itself (e.g. ->1841), by the current, peak and total
requests transported over that connection.
An idle HTTP/1.n, generally persistent connection, by "[persistent] 6955",
where the integer the count of requests made over that persistent connection.
$ HTTPD/DO=NET=PURGE=2118 would delete *request* number 2118, while
$ HTTPD/DO=NET=PURGE=1841 would delete HTTP/2 network connection number 1841,
along with all requests associated with that connection (e.g. 2118->1841).
While there is no HTTP/1.n connection in this example, purging that deletes
that connection and any associated request in progress at the time.
o NET=PURGE purge persistent (idle) connections
NET=PURGE=<integer> purge this particular connection number
NET=PURGE=ALL purge all (idle and non-idle) connections
NET=PURGE=HTTP1 purge all (ditto) HTTP/1.n connections
NET=PURGE=HTTP2 purge all (ditto) HTTP/2 connections
NET=PURGE=URI=<pattern> purge connections with matching request URI
Those are all variations on the connection deletion theme.
The following are available to control server connection acceptance.
o NET=RESUME resume accepting connections (see suspend)
o NET=SUSPEND stop accepting connections (see resume)
NET=SUSPEND=NOW as for suspend and terminate those in-progress
The documentation references:
https://wasd.vsm.com.au/wasd_root/wasdoc/features/#httpdserveraction
https://wasd.vsm.com.au/wasd_root/wasdoc/features/#networkconnection
Regards, Mark.
|