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.
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.
Server | Developed by | Software license | Last stable version | Latest release date |
---|---|---|---|---|
AOLserver | NaviSoft | Mozilla | 4.5.2 | 2012-09-19 (discontinued) |
Apache HTTP Server | Apache Software Foundation | Apache | 2.4.62 | 2024-07-17 |
Apache Tomcat | Apache Software Foundation | Apache | 10.1.15 | 2023-10-16 |
Boa | Jon Nelson and Larry Doolittle | GNU GPL | 0.94.13 | 2002-07-30 (discontinued) |
BusyBox httpd | Glenn Engel, Vladimir Oleynik, BusyBox Team | GNU GPL | 1.36.1 | 2023-05-18 |
Caddy | Matt Holt | Apache | 2.8.4 | 2024-06-02 |
Caudium | The Caudium Group | GNU GPL | 1.4.18 | 2012-02-24 |
CERN httpd | CERN, W3C, Tim Berners-Lee, Ari Luotonen and Henrik Frystyk Nielsen | MIT Copyright Statement with acknowledgement to CERN | 3.0A | 1996-07-15 (discontinued) |
Cherokee HTTP Server | Álvaro López Ortega | GNU GPL | 1.2.103 | 2013-04-21 |
GlassFish | Sun Microsystems, Oracle Corporation, since 2019 Eclipse Foundation | Eclipse Public License & GNU General Public License | 6.2.5 | 2022-02-13 |
Hiawatha | Hugo Leisink | GNU GPLv2 | 11.6 | 2024-06-13 |
HFS | Rejetto | GNU GPL | 2.3m | 2018-08-16 |
IBM HTTP Server | IBM | Non-free proprietary | 9.0.5.17 | 2023-09-19 |
Internet Information Services | Microsoft | Non-free proprietary | 10.0.17763.1 | 2018-10-02 |
Jetty | Eclipse Foundation | Apache | 12.0.2 | 2023-10-10 |
Jexus | Bing Liu | Non-free proprietary | 6.2.x | 2020 |
lighttpd | Jan Kneschke (Incremental) | BSD variant | 1.4.76 | 2024-04-12 |
LiteSpeed Web Server | LiteSpeed Technologies | GNU GPLv3 / proprietary license | 6.1.2 | 2023-05-24 |
Mongoose | Cesanta Software | GNU GPLv2 / proprietary license | 7.16 | 2024-11-20 |
Monkey HTTP Server | Monkey Software | Apache | 1.6.9 | 2016-06-04 |
NaviServer | Various | Mozilla 1.1 | 4.99.25 | 2023-05-01 |
NCSA HTTPd | Robert McCool | Non-free proprietary | 1.5.2a | 1996-10-08 (discontinued) |
Nginx | NGINX, Inc. | BSD variant | 1.25.4 | 2024-03-14 |
OpenBSD httpd | Reyk Floeter | ISC | 7.4 | 2023-10-16 |
OpenLink Virtuoso | OpenLink Software | GNU GPL and proprietary versions | 8.3.3329 | 2023-09-01 |
Oracle HTTP Server | Oracle Corporation | Non-free proprietary | 12cR2 (12.2.1.4) [1] | 2021-02-?? [2] |
Oracle iPlanet Web Server | Oracle Corporation | BSD | 7.0.27 | 2017-10-01 |
Oracle WebLogic Server | Oracle Corporation (formerly BEA Systems) | Non-free proprietary | 14c (14.1.1.0) [1] | 2020-03-30 |
Resin Open Source | Caucho Technology | GNU GPLv3 / proprietary license | 4.0.66 | 2021-12-08 |
Resin Professional | Caucho Technology | Non-free proprietary | 4.0.66 | 2021-12-08 |
thttpd | Jef Poskanzer for ACME Laboratories | BSD variant | 2.29 | 2018-05-24 |
TUX web server | Ingo Molnár | GNU GPL | 3.2.6.18 | 2006-09-20 (discontinued) |
WEBrick | Ruby Community | BSD 2-clause | 1.8.1 | 2023-01-27 |
Xitami | iMatix Corporation | BSD | 5.0a0 | 2009-02-19 (discontinued) |
Yaws | Claes Wikström | BSD 3 clause | 2.1.1 | 2022-02-02 |
Zeus Web Server | Zeus Technology | Non-free proprietary | 4.3r5 | 2010-01-13 (discontinued) |
Zope | Zope Corporation | Zope | 2.13.30 | 2020-02-14 |
Server | Developed by | Software license | Last stable version | Latest release date |
Some features may be intentionally not included to web server to avoid featuritis. For example:
Server | Security | Virtual hosting | Dynamic content [a] | Runs in user or kernel space | Administration console | Additional 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 | Yes | No | Yes [b] [c] [d] [3] | Yes | Yes | No | Unknown | No | No | Yes | Unknown | Unknown | user | Unknown | Unknown | Unknown | Unknown | Unknown |
Apache HTTP Server | Yes | Yes | Yes [e] [c] [4] [f] [5] | Yes | Yes | Yes | Yes | Yes [e] | No [g] | Yes | Yes [h] | Unknown | user | Yes [i] | Yes | Yes | No | No |
Apache Tomcat | Yes | Yes | Yes [j] [6] | Yes | Yes | No | Unknown | No | Yes | Yes | No [k] | Unknown | user | Yes | Yes [l] | Yes | Unknown | Unknown |
Boa | No | No | Yes [m] | Yes | Yes | No | Unknown | No | No | No | No | No | user | Unknown | Yes | No | No | No |
BusyBox httpd | Yes | No | No | No | Yes | No | No | No | No | No [n] | No | No | user | No | Yes | No | No | No |
Caddy | Yes | No | Yes | Yes | Partial [o] | Yes | No | No | No | No [p] | No | No | user | No | Yes | Yes | Yes | Yes [q] |
Caucho Resin Server | Yes | Yes | paid version [c] | Yes | Yes | Yes | Unknown | No | Yes | Yes | No | Unknown | user | Yes | Yes | Unknown | Unknown | Unknown |
Caudium | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | No | Yes | Yes | Unknown | Unknown | user | Yes | Yes [r] | Unknown | Unknown | Unknown |
Cherokee HTTP Server | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | No | Unknown | user | Yes | Yes [8] | Unknown | Unknown | Unknown |
HFS | Yes | No | No [9] | No | No | No | Unknown | No | No | No | Unknown | Unknown | user | Unknown | No | Unknown | Unknown | Unknown |
Hiawatha HTTP Server | Yes | Yes | Yes [s] [10] | Yes | Yes | Yes | No | No | No | Yes | No | Unknown | user | Yes | Yes | No [11] | No [11] | No [11] |
IBM HTTP Server | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | No | No | Yes | No | Unknown | user | Yes | Yes | Unknown | Unknown | Unknown |
Internet Information Services | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No [t] | Yes | Yes | Yes | kernel and user [12] | Yes | Yes | Yes | Unknown | Unknown |
Jetty | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown | No | Yes | Unknown | Unknown | Yes | user | Unknown | Unknown | Yes | Unknown | Unknown |
Jexus | No | No | Yes | Yes | No | Yes | No | No | No | No | No | Yes | user | Yes | No | Unknown | Unknown | Unknown |
lighttpd | Yes | Yes | Yes [c] [13] | Yes | Yes | Yes | Yes | Yes | No [g] | Yes | No | No | user | No | Yes | Yes | No | No |
LiteSpeed Web Server | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | No [g] | Yes | No | Unknown | user | Yes | Yes | Yes | Yes | Yes [14] |
Mongoose | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | No | user | Yes | Yes | Unknown | Unknown | Unknown |
Monkey HTTP Server | Yes | No | Yes [s] | Yes | Yes | Yes | No | No | No | No | No | No | user | No | Yes | Unknown | Unknown | Unknown |
NaviServer | Yes | No | Yes | Yes | Yes | No | Unknown | No | No | Yes | Unknown | Unknown | user | Yes | Yes | Unknown | Unknown | Unknown |
NCSA HTTPd | Yes | Yes | Unknown | Partial [u] | Yes | Unknown | Unknown | No | No | Yes | No | No | user | No | No | No | No | No |
nginx | Yes | Yes (module) | Yes | Yes | No | Yes | Yes | Yes | No [15] | Yes | No | Unknown | user | No | Yes [16] | Yes [17] | Yes | Yes |
OpenBSD httpd | Yes | No | Yes | Yes | No | Yes | No | No | No | No | No | No | user | No | Yes | No | No | No |
OpenLink Virtuoso | Yes | Yes | Yes | Yes | No | No | No | No | Yes | Yes | No | No | user | Yes | No | No | Unknown | Unknown |
Oracle HTTP Server [18] | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | No | No | Yes | No | Unknown | user | Yes [v] | Yes | Unknown | Unknown | Unknown |
Oracle iPlanet Web Server | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | No | Yes | Yes | No | Yes | user | Yes | Yes | Unknown | Unknown | Unknown |
thttpd | Yes | Unknown | No | Yes | Yes | No | Unknown | No | No | No | No | Unknown | user | No | Yes | Unknown | Unknown | Unknown |
TUX web server | No | No | No | Yes | Yes | No | Unknown | No | No | No | No | Unknown | kernel | Unknown | Unknown | Unknown | Unknown | Unknown |
Xitami | Yes | Unknown | paid version | Yes | Yes | Unknown | Unknown | No | Unknown | Yes | Unknown | Unknown | user | Unknown | Unknown | Unknown | Unknown | Unknown |
Yaws | Yes | Unknown | Yes | Yes | Yes | Yes | Unknown | No | No | Yes | No | Unknown | user | Unknown | Yes | Unknown | Unknown | Unknown |
Zeus Web Server | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | No | No [g] | Yes | Yes | Unknown | user | Yes | No | Unknown | Unknown | Unknown |
Server | Windows | Linux | macOS | BSD | Solaris | eComStation | OpenVMS | AIX | IBM i | z/OS | HP-UX |
---|---|---|---|---|---|---|---|---|---|---|---|
AOLserver | No | Yes | Yes | Yes | Yes | No | No | Unknown | No | Unknown | Unknown |
Apache HTTP Server | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Apache Tomcat | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes |
Boa | Unknown | Yes | No | Yes | Unknown | No | No | Unknown | No | Unknown | Unknown |
BusyBox httpd | No [19] | Yes | Unknown | Yes | No | No | No | No | No | No | No |
Caddy | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown | Unknown | Unknown |
Caucho Resin Server | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Caudium [20] | No | Yes | Yes | Yes | Yes | No | No | Yes | No | Unknown | Unknown |
Cherokee HTTP Server | No [21] | Yes | Yes | Yes | Yes | No | No | Unknown | No | Unknown | Unknown |
HFS | Yes | No | No | No | No | No | No | No | No | No | No |
Hiawatha | with Cygwin [22] | Yes [22] | Yes [22] | Yes [22] | Yes [22] | No | No | No | No | No | No |
IBM HTTP Server | Yes | Yes | No | No | Yes | No | No | Yes | Yes | Yes | Yes |
Internet Information Services | Yes | No | No | No | No | No | No | No | No | No | No |
Jetty (Java) | Yes | Yes | Yes | Yes | Yes | Yes | No | Unknown | No | Yes | Unknown |
Jexus | No | Yes | No | Yes | Unknown | No | No | No | No | No | No |
lighttpd | Yes (Cygwin) | Yes | Yes | Yes | Yes | No | No | Yes | No | No | Yes |
LiteSpeed Web Server | No | Yes | Yes | Yes | Yes | No | No | Unknown | No | Unknown | Unknown |
Mongoose | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | No | Yes |
Monkey HTTP Server | No | Yes | Yes | No | No | No | No | No | No | No | No |
NaviServer | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown | Yes | No | Unknown | Unknown |
NCSA HTTPd | Unknown | Yes | No | Yes | Yes | Yes | No | Unknown | No | Unknown | Yes |
nginx | Yes | Yes | Yes | Yes | Yes | No | No | Yes | No | No | Yes |
OpenLink Virtuoso | Yes | Yes | Yes | Yes | Yes | No | No | Yes | No | No | Yes |
Oracle HTTP Server | Yes | Yes | No | Unknown | Yes | No | No | Yes | No | Unknown | Unknown |
Oracle iPlanet Web Server | Yes | Yes | No | No | Yes | No | No | Yes | No | No | Yes |
thttpd | Yes (Cygwin) | Yes | Yes | Yes | Yes | No | No | Unknown | No | Unknown | Unknown |
TUX web server | No | Yes | No | No | No | No | No | No | No | No | No |
Xitami | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Unknown | Yes |
Yaws | Yes | Yes | Yes | Yes | Yes | No | No | Yes | No | Unknown | Unknown |
The Apache HTTP Server is a free and open-source cross-platform web server, released under the terms of Apache License 2.0. It is developed and maintained by a community of developers under the auspices of the Apache Software Foundation.
In computing, Common Gateway Interface (CGI) is an interface specification that enables web servers to execute an external program to process HTTP or HTTPS user requests.
In web applications, a rewrite engine is a software component that performs rewriting on URLs, modifying their appearance. This modification is called URL rewriting. It is a way of implementing URL mapping or routing within a web application. The engine is typically a component of a web server or web application framework. Rewritten URLs are used to provide shorter and more relevant-looking links to web pages. The technique adds a layer of abstraction between the files used to generate a web page and the URL that is presented to the outside world.
Server Side Includes (SSI) is a simple interpreted server-side scripting language used almost exclusively for the World Wide Web. It is most useful for including the contents of one or more files into a web page on a web server, using its #include
directive. This could commonly be a common piece of code throughout a site, such as a page header, a page footer and a navigation menu. SSI also contains control directives for conditional features and directives for calling external programs. It is supported by Apache, LiteSpeed, nginx, IIS as well as W3C's Jigsaw. It has its roots in NCSA HTTPd.
lighttpd is an open-source web server optimized for speed-critical environments while remaining standards-compliant, secure and flexible. It was originally written by Jan Kneschke as a proof-of-concept of the c10k problem – how to handle 10,000 connections in parallel on one server, but has gained worldwide popularity. Its name is a portmanteau of "light" and "httpd".
The Web Server Gateway Interface is a simple calling convention for web servers to forward requests to web applications or frameworks written in the Python programming language. The current version of WSGI, version 1.0.1, is specified in Python Enhancement Proposal (PEP) 3333.
Catalyst is an open-source web application framework written in Perl. It closely follows the model–view–controller (MVC) architecture and supports a number of experimental web patterns. It is written using Moose, a modern object system for Perl. Its design is heavily inspired by frameworks such as Ruby on Rails, Maypole, and Spring.
HTTP compression is a capability that can be built into web servers and web clients to improve transfer speed and bandwidth utilization.
The Apache JServ Protocol (AJP) is a binary protocol that can proxy inbound requests from a web server through to an application server that sits behind the web server. AJP is a highly trusted protocol and should never be exposed to untrusted clients, which could use it to gain access to sensitive information or execute code on the application server.
Oracle HTTP Server (OHS) is a web server based on the Apache HTTP Server, created by the Oracle Technology Network. The web server is based on Apache version 2.2.13. OHS, like Apache 2.2, includes support for IPv6.
Hiawatha was a free and open source cross-platform web server developed by Hugo Leisink.
Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache. The software was created by Russian developer Igor Sysoev and publicly released in 2004. Nginx is free and open-source software, released under the terms of the 2-clause BSD license. A large fraction of web servers use Nginx, often as a load balancer.
Python Paste, often simply called paste, is a set of utilities for web development in Python. Paste has been described as "a framework for web frameworks".
When an HTTP client requests a URL that points to a directory structure instead of an actual web page within the directory structure, the web server will generally serve a default page, which is often referred to as a main or "index" page.
Slowloris is a type of denial of service attack tool which allows a single machine to take down another machine's web server with minimal bandwidth and side effects on unrelated services and ports.
mod_ssl is an optional module for the Apache HTTP Server. It provides strong cryptography for the Apache v1.3 and v2 webserver via the Secure Sockets Layer and Transport Layer Security cryptographic protocols by the help of the Open Source SSL/TLS toolkit OpenSSL.
SPDY is an obsolete open-specification communication protocol developed for transporting web content. SPDY became the basis for HTTP/2 specification. However, HTTP/2 diverged from SPDY and eventually HTTP/2 subsumed all usecases of SPDY. After HTTP/2 was ratified as a standard, major implementers, including Google, Mozilla, and Apple, deprecated SPDY in favor of HTTP/2. Since 2021, no modern browser supports SPDY.
FastCGI is a binary protocol for interfacing interactive programs with a web server. It is a variation on the earlier Common Gateway Interface (CGI). FastCGI's main aim is to reduce the overhead related to interfacing between web server and CGI programs, allowing a server to handle more web page requests per unit of time.
HTTP/2 is a major revision of the HTTP network protocol used by the World Wide Web. It was derived from the earlier experimental SPDY protocol, originally developed by Google. HTTP/2 was developed by the HTTP Working Group of the Internet Engineering Task Force (IETF). HTTP/2 is the first new version of HTTP since HTTP/1.1, which was standardized in RFC 2068 in 1997. The Working Group presented HTTP/2 to the Internet Engineering Steering Group (IESG) for consideration as a Proposed Standard in December 2014, and IESG approved it to publish as Proposed Standard on February 17, 2015. The initial HTTP/2 specification was published as on May 14, 2015.
Rustls is an open-source implementation of the Transport Layer Security (TLS) cryptographic protocol written in the Rust programming language. TLS is essential to internet security, and Rustls aims to enable secure, fast TLS connections. Rustls uses Rust's enforcement of memory safety to reduce the risk of security vulnerabilities. It is part of efforts to improve internet security by replacing memory-unsafe software libraries, such as OpenSSL, with memory-safe alternatives.