[fpc-pascal] fcl-web on Microsoft's kernel mode HTTP(S) server

Sven Barth pascaldragon at googlemail.com
Fri Jan 19 23:19:16 CET 2018


Hello together!

In revision 38013 I extended fcl-web with the support to use it together
with Microsoft's kernel mode HTTP(S) server (aka http.sys).

What does this mean? First of that doesn't mean that you're running
kernel mode code. Instead http.sys receives requests to the ports it
observes (depending on the registrations this will usually be 80 and
8080) and hands them to user mode code that in turn provides a response
that http.sys then sends to the client.
The advantage of this is that multiple applications can listen to port
80 or 8080 as long as they have different URLs and this also includes
IIS which uses http.sys as well! So you don't need to have IIS pass data
to your (F)CGI application, instead you can run completely independant
of that server.
The URLs for this need to be registered to http.sys by e.g. using "netsh
http add urlacl http://+:80/fpweb user=DOMAIN\User" (an alternative is
the configuration API of which the usage is shown here:
https://www.codeproject.com/Articles/437733/Demystify-http-sys-with-HttpSysManager).
This allows user (or group) User to listen on the specified URL. In
addition to that one server queue (the handle one creates to interact
with http.sys) can also listen to multiple URLs at once (currently only
one server queue can be used with fcl-web, but multiple URLs can already
be used).
Additionally http.sys also supports client side SSL certificates (though
this is currently not supported by fcl-web).

I'd now ask those users of fcl-web that have access to Windows to test
their web applications with this backend so that bugs can be found and
fixed.

Thank you.

Regards,
Sven



More information about the fpc-pascal mailing list