soyMAIL 2.1.0 requires JavaScript
soyMAIL @ wasd.vsm.com.au
       info-WASD Mailing List 2022 

Mon 17:39:41 Message "2022 / 0053" opened.  MIME.  7 kbytes.    JavaScript

Subject:[Info-WASD] WASD HTTPd command-line directives (/DO=)0053 / 0000
From:Mark.Daniel@wasd.vsm.com.au
Reply-to:info-wasd@vsm.com.au
Date:Sat, 08 Oct 2022 00:16:09 +1030  [ 8-OCT-2022 00:16]
To:info-WASD@vsm.com.au

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.

  ¤¤¤       
  ¤¤¤