Comparison of web server software

Last updated

Web server software allows computers to act as web servers. The first web servers supported only static files, such as HTML (and images), but now they commonly allow embedding of server side applications.

Contents

Some web application frameworks include simple HTTP servers. For example the Django framework provides runserver, and PHP has a built-in server. These are generally intended only for use during initial development. A production server will require a more robust HTTP front-end such as one of the servers listed here.

Overview

Features

Some features may be intentionally not included to web server to avoid featuritis. For example:

ServerSecurity Virtual
hosting
Dynamic content [a] Runs in user
or kernel space
Administration consoleAdditional protocol support
Basic access
authenti-
cation
Digest access
authenti-
cation
SSL/TLS
https
CGI FCGI SCGI WSGI Java
Servlets
SSI ISAPI SSJS IPv6 HTTP/2 QUIC HTTP/3
AOLserver YesNoYes [b] [c] [d] [3] YesYesNoUn­knownNoNoYesUn­knownUn­knownuserUn­knownUn­knownUn­knownUn­knownUn­known
Apache HTTP Server YesYesYes [e] [c] [4] [f] [5] YesYesYesYesYes [e] No [g] YesYes [h] Un­knownuserYes [i] YesYesNoNo
Apache Tomcat YesYesYes [j] [6] YesYesNoUn­knownNoYesYesNo [k] Un­knownuserYesYes [l] YesUn­knownUn­known
Boa NoNoYes [m] YesYesNoUn­knownNoNoNoNoNouserUn­knownYesNoNoNo
BusyBox httpd YesNoNoNoYesNoNoNoNoNo [n] NoNouserNoYesNoNoNo
Caddy YesNoYesYesPartial [o] YesNoNoNoNo [p] NoNouserNoYesYesYesYes [q]
Caucho Resin Server YesYespaid version [c] YesYesYesUn­knownNoYesYesNoUn­knownuserYesYesUn­knownUn­knownUn­known
Caudium YesYesYesYesYesYesUn­knownNoYesYesUn­knownUn­knownuserYesYes [r] Un­knownUn­knownUn­known
Cherokee HTTP Server YesYesYesYesYesYesYesYesNoYesNoUn­knownuserYesYes [8] Un­knownUn­knownUn­known
HFS YesNoNo [9] NoNoNoUn­knownNoNoNoUn­knownUn­knownuserUn­knownNoUn­knownUn­knownUn­known
Hiawatha HTTP Server YesYesYes [s] [10] YesYesYesNoNoNoYesNoUn­knownuserYesYesNo [11] No [11] No [11]
IBM HTTP Server YesYesYesYesYesYesUn­knownNoNoYesNoUn­knownuserYesYesUn­knownUn­knownUn­known
Internet Information Services YesYesYesYesYesYesYesNoNo [t] YesYesYeskernel and user [12] YesYesYesUn­knownUn­known
Jetty YesYesYesYesYesUn­knownUn­knownNoYesUn­knownUn­knownYesuserUn­knownUn­knownYesUn­knownUn­known
JexusNoNoYesYesNoYesNoNoNoNoNoYesuserYesNoUn­knownUn­knownUn­known
lighttpd YesYesYes [c] [13] YesYesYesYesYesNo [g] YesNoNouserNoYesYesNoNo
LiteSpeed Web Server YesYesYesYesYesYesNoYesNo [g] YesNoUn­knownuserYesYesYesYesYes [14]
Mongoose YesYesYesYesYesNoNoNoNoYesNoNouserYesYesUn­knownUn­knownUn­known
Monkey HTTP Server YesNoYes [s] YesYesYesNoNoNoNoNoNouserNoYesUn­knownUn­knownUn­known
NaviServer YesNoYesYesYesNoUn­knownNoNoYesUn­knownUn­knownuserYesYesUn­knownUn­knownUn­known
NCSA HTTPd YesYesUn­knownPartial [u] YesUn­knownUn­knownNoNoYesNoNouserNoNoNoNoNo
nginx YesYes (module)YesYesNoYesYesYesNo [15] YesNoUn­knownuserNoYes [16] Yes [17] YesYes
OpenBSD httpdYesNoYesYesNoYesNoNoNoNoNoNouserNoYesNoNoNo
OpenLink Virtuoso YesYesYesYesNoNoNoNoYesYesNoNouserYesNoNoUn­knownUn­known
Oracle HTTP Server [18] YesYesYesYesYesYesUn­knownNoNoYesNoUn­knownuserYes [v] YesUn­knownUn­knownUn­known
Oracle iPlanet Web Server YesYesYesYesYesYesUn­knownNoYesYesNoYesuserYesYesUn­knownUn­knownUn­known
thttpd YesUn­knownNoYesYesNoUn­knownNoNoNoNoUn­knownuserNoYesUn­knownUn­knownUn­known
TUX web server NoNoNoYesYesNoUn­knownNoNoNoNoUn­knownkernelUn­knownUn­knownUn­knownUn­knownUn­known
Xitami YesUn­knownpaid versionYesYesUn­knownUn­knownNoUn­knownYesUn­knownUn­knownuserUn­knownUn­knownUn­knownUn­knownUn­known
Yaws YesUn­knownYesYesYesYesUn­knownNoNoYesNoUn­knownuserUn­knownYesUn­knownUn­knownUn­known
Zeus Web Server YesYesYesYesYesYesUn­knownNoNo [g] YesYesUn­knownuserYesNoUn­knownUn­knownUn­known
  1. The "dynamic content" columns indicate whether the server itself implements the given feature. Other features may be available by delegation (e.g. Apache HTTP Server can delegate to Apache Tomcat for Servlet support).
  2. support for using RSA BSAFE
  3. 1 2 3 4 support for using openSSL
  4. support for using Network Security Services
  5. 1 2 via modules
  6. support for using GnuTLS
  7. 1 2 3 4 This server implements AJP; compatible third-party Servlet containers can be integrated to provide seamless Servlet support.
  8. This server can use the mod_isapi module for this support.
  9. via Geronimo
  10. support for using Java Secure Socket Extension
  11. While Tomcat does not implement ISAPI directly, it integrates well with Apache mod_jk which contains an ISAPI module for this purpose.
  12. Requires a JVM and OS that support IPv6.
  13. with external patch
  14. Implemented as CGI script httpd_ssi
  15. CGI implemented for WebSocket connections
  16. Same capabilities as SSI available with templates
  17. The experimental_http3 option "enables experimental draft HTTP/3 support...This option will go away in the future". [7]
  18. Version 1.4.8 of Caudium mentions IPv6 support but this is not explicitly specified on the official website. Maintainers have been sent a Documentation Update Query; please remove this warning notice when they update their website
  19. 1 2 support for using PolarSSL
  20. Servlet Engines are supported via isapi_redirect.
  21. Due to lack of support for HTTP/1.1, name based virtual hosts are not fully implemented.
  22. via Enterprise Manager

Operating system support

See also

References

  1. 1 2 "Oracle Web Tier Downloads". www.oracle.com. Oracle. Retrieved 11 August 2020.
  2. "Release Notes for Oracle HTTP Server". Oracle Help Center. Retrieved 2022-10-09.
  3. "Nsssl - AOLserver Wiki" . Retrieved 2014-07-04.
  4. "Apache Module mod_ssl" . Retrieved 2014-07-04.
  5. "mod_gnutls". Archived from the original on 2018-05-30. Retrieved 2014-07-04.
  6. "Apache Tomcat 6.0 - SSL Configuration HOW-TO" . Retrieved 2014-07-04.
  7. "Global options". caddyserver.com. Retrieved 11 August 2020.
  8. "Cherokee Web Server | Man pages cherokee-admin | Cherokee Documentation". cherokee-project.com.
  9. "HFS: Secure your server - rejetto wiki". www.rejetto.com.
  10. Leisink, Hugo. "Features - Hiawatha webserver". hiawatha-webserver.org. Retrieved 2014-07-04.
  11. 1 2 3 "Scaling down the project". www.hiawatha-webserver.com. Retrieved 11 August 2020.
  12. "States that the HTTP protocol stack http.sys runs in kernel space, while the rest of the software runs in user space". Technet2.microsoft.com. Archived from the original on 2008-04-17. Retrieved 2012-02-28.
  13. "Secure HTTP". redmine.lighttpd.net. Retrieved 2014-12-09.
  14. ""LiteSpeed Web Server v5.4 is Here!"". 24 July 2019. Retrieved 11 November 2019.
  15. "JavaServers". Wiki.nginx.org. Retrieved 2013-08-15.
  16. Ghosh, Soumik (2010-09-05). "Enable IPv6 support". Nginx Library. Retrieved 2013-08-15.
  17. "nginx changelog". www.nginx.com. 2015-09-22.
  18. "Feature Overview - 10g R2 (10.1.2)" (PDF). Oracle.com. 2010-09-07. Retrieved 2012-02-28.
  19. "BusyBox on Windows". "The Windows native build is currently broken."
  20. "Webserver FAQs". Caudium. Archived from the original on 2002-11-14. Retrieved 2012-02-28.
  21. John Poole. "Installation on Windows". cherokee-project.com. Retrieved 2014-11-23. "The Windows native build is currently broken."
  22. 1 2 3 4 5 Hugo Leisink. "About - Hiawatha webserver". hiawatha-webserver.org. Archived from the original on 2023-06-12. Retrieved 2014-06-21.