Skip to content
This repository has been archived by the owner on Sep 21, 2020. It is now read-only.

Httpd connector libraries

jocelyn edited this page Jun 22, 2011 · 3 revisions

The Httpd-library is demanding at least one httpd connector to be implemented, currently the following connectors are available and implement the HTTPD_APPLICATION, HTTPD_SERVER_INPUT, and HTTPD_SERVER_OUTPUT .

  • cgi : the CGI interface. Not the most efficient solution because the web server will launch the executable for each request, however this is a convenient way to host and test your server application, and sometime this is the only solution on your web hosting solution.
    • Provides: HTTPD_CGI_APPLICATION, HTTPD_CGI_SERVER_INPUT, HTTPD_CGI_SERVER_OUTPUT
  • fcgi : the Fast CGI interface, based on the libfcgi SDK (on Windows, a modified version is provided in this framework, the modification is meant to support 64bits DLL).
    • This is (currently) the recommended connector for efficient Eiffel web server application.
    • Indeed it is possible to configure your web server (apache2, IIS, ...) to launch only one instance of the executable or N instances, with maximum lifetime, ... and so on, see for instance the apache2 mod_fcgid documentation.
    • Provides: HTTPD_FCGI_APPLICATION, HTTPD_FCGI_SERVER_INPUT, HTTPD_FCGI_SERVER_OUTPUT
  • nino : the simple standalone Eiffel Web Server.
    • Very helpful to test your application, or even integrate the server in a desktop application, in a test suite, or anything.
    • Convenient to have portable application (on USB key for instance), and being able to demo a web application.
    • Quite useful to test and debug your application without having to setup server like Apache, IIS, ...
    • Currently it is very simple, but it is actively developed (see mirror at https://github.com/Eiffel-World/EiffelWebNino )
    • Provides: HTTPD_NINO_APPLICATION, HTTPD_NINO_SERVER_INPUT, HTTPD_NINO_SERVER_OUTPUT
  • And the httpd library is designed to accept easily new connector, as long as they implement HTTPD_APPLICATION, HTTPD_SERVER_INPUT and HTTPD_SERVER_OUTPUT (see Httpd-library for details).
  • We can think about SCGI, or variant of WSGI for Eiffel, or any connector.
  • For instance it should be possible to integrate the Goanna connectors
Clone this wiki locally