• New version of HTTPServ

    From Thomas Milius@21:1/5 to All on Mon Mar 6 11:46:57 2023
    I have just released a new version of my HTTPServ HTTP server. You can
    download the new version from my homepage

    http://thomas-milius-stade.dnshome.de/indexE.htm

    Section Computer activities

    or directly

    http://thomas-milius-stade.dnshome.de/Download/Freeware/httpsv.zip

    and also from !Store under HTTPServ (which includes !SSI). Note that due a clean up regarding the version number !Store may not indicate a new version.

    What changed?

    * The new version is V0.12. Unfortunately I released already some Versions under V0.12 but they did include no or only a single small change inside the main program itself. Now manual, version number etc. is all uptodate

    * The new version is not fully backward compatible. I removed the
    configuration value Server Directory from configuration file. It is now a parameter of the program call. Additionally I added one parameter inside programs called using the "Adapter" programs. This may lead to trouble with BASIC programs using OS_ReadArgs. I also changed the handling of CGI$S
    variable inside the Adapter programs. This affects all BASIC progams and Obey scripts. They must take care now to Unset CGI$S theirselves at end of
    program. All examples have been adapted accordingly. Old bevahiour can be restored by adapting the two Adapter programs accordingly.

    * A couple of internal bugs have been corrected. In most cases these bugs
    will have never played a role in pratice. See Version 0.12 in manual for details.

    * Parameters at program start changed. Together with some other internal changes they allowing it now to run multiple instances of HTTPServ on the
    same machine. At older versions e.g. names of the CGI variables were not entirely unique under all circumstances.

    What is new?

    * Header files provided for evaluation by scripts. Eg. cookie information can be obtained from there on demand.

    * CGI variables for cookie creation added.

    * Authentication on directory base added.

    * CGI variable containing the authenticated user introduced

    * Handling of If-Modfied-Since HTTP header field added for files in mode F

    * Last-Modified HTTP header field added for files in mode F

    * Declaration and handling of arbitrary HTTP methods added.

    * Declaration and handling of arbitrary HTTP methods for a certain path range added

    * Declaration and passing on of arbitrary HTTP methods for a certain path
    range added

    * Example of a simple cloud added

    * Example of a simple MJPEG video stream added (Iris or Chromium under LINUX
    as browser required)

    Declaration and handling of arbitrary HTTP methods sounds a bit abstract,
    also passing on. HTTP usually makes only usage of GET and POST method.
    HTTPServ im plements their handling internal. There are a lot of of methods like e.g. PUT and DELETE which are usually not supported by browsers but e.g. AcornHTTP module is supporting PUT and DELETE. You can now define arbitrary methods for HTTPServ however you have to implement them by your own programs. Until now HTTPServ handled URL references either as a fixed file or as a CGI script. Now you can call your own programs for certain path ranges independently whether the referred files are really existing or not. So you
    are able to create valid responses on demand for files which are not really existing e.g. from a database or something like this.

    Difference between calling a program implementing a method and a pass on is
    the following. Usually HTTPServ gets a HTTP request and evaluates header and data if there is one. Then HTTPServ calls a program with this information.
    The program calculates the answer and writes it into a temporary file. Then
    it tells HTTPServ that the result has been provided and stops. HTTPServ afterwards will send the content of the temporary file to the requester handling HTTP header etc.. This concept only allows creation of whole files which means that the requester has to wait until all is finished on side of HTTPServ. In case of passing on a request to a program HTTPServ evaluates the request as usal but with calling the desired program to handle the method it also passes the whole control over the HTTP stream towards the program. Which is then responsible to handle the response. This allows to write streaming programs.

    A simple BBC BASIC example program is provided which takes an MJPEG video
    file (generated by DeskWatcher and MakeMJPEG) and passes header and frame by frame of the file to the client. (Unfortunately it still pops up an empty TaskWindow for each stream request. I shall have to improve this later.)

    Regards

    Thomas Milius


    _______________________________________________________________ a.m.conroy@argonet.co.uk, Moderator of comp.sys.acorn.announce.
    Submissions to csaa@owlart.net
    Related mail to csaa-request@owlart.net

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)