H2O is a very fast HTTP server written in C. It can also be used as a library.
It supports:
- HTTP/1.0, HTTP/1.1
- [HTTP/2](http://http2.github.io/)
- draft 16 (and draft 14 to support older clients)
- persistent connections
- chunked encoding
- negotiation methods: NPN, ALPN, Upgrade, direct
- dependency and weight-based prioritization
- server push
- TLS
- uses [OpenSSL](https://www.openssl.org/)
- forward secrecy
- AEAD ciphers
- OCSP stapling (automatically enabled)
- session resumption (internal memory)
- conditional GET using last-modified / etag
- mime-type configuration
- reverse proxy
- persistent upstream connection
thttpd is a simple, small, portable, fast, and secure HTTP server.
- Simple: It handles only the minimum necessary to implement HTTP/1.1.
- Small: It also has a very small run-time size, since it does not fork
and is very careful about memory allocation.
- Portable: It compiles cleanly on SunOS 4.1.x, Solaris 2.x, BSD/OS 2.x,
Linux 1.2.x, and OSF/1 (on a 64-bit Alpha).
- Fast: In typical use it's about as fast as the best full-featured
servers (Apache, NCSA, Netscape). Under extreme load it's much faster.
- Secure: It goes to great lengths to protect the web server machine
against attacks and breakins from other sites.
It also has one extremely useful feature (URL-traffic-based throttling) that
no other server currently has.
mini_httpd is a small HTTP server. Its performance is not great, but for
low or medium traffic sites it's quite adequate. It implements all the
basic features of an HTTP server, including:
- GET, HEAD, and POST methods
- CGI and basic authentication support
- Security against ".." filename snooping
- The common MIME types
- Trailing-slash redirection
- index.html, index.htm, index.cgi
- Directory listings
- Multihoming (virtual hosting)
- Standard logging
- Custom error pages
It can also be configured to do SSL/HTTPS and IPv6.
Cowboy aims to provide a complete HTTP stack in a small code base. It
is optimized for low latency and low memory usage, in parts because it
uses binary strings.
Cowboy provides routing capabilities, selectively dispatching requests
to handlers written in Erlang.
Because it uses Ranch for managing connections, Cowboy can easily be
embedded in any other application.
mod_spdy is an Apache 2.x filter module that provides SPDY support in the
Apache HTTPD web server. Because mod_spdy is an Apache module, it can be
loaded into currently deployed Apache HTTPD 2.x web servers using mod_so.
mod_dosevasive is an evasive maneuvers module for Apache to provide evasive
action in the event of an HTTP DoS or DDoS attack or brute force attack.
It is also designed to be a detection and network management tool, and can be
easily configured to talk to ipchains, firewalls, routers, and etcetera.
mod_dosevasive presently reports abuses via email and syslog facilities.
Detection is performed by creating an internal dynamic hash table of IP
Addresses and URIs, and denying any single IP address from any of the
following:
* Requesting the same page more than a few times per second
* Making more than 50 concurrent requests on the same child per second
* Making any requests while temporarily blacklisted (on a blocking list)
This method has worked well in both single-server script attacks as well as
distributed attacks, but just like other evasive tools, is only as useful to
the point of bandwidth and processor consumption (e.g. the amount of bandwidth
and processor required to receive/process/respond to invalid requests), which
is why it's a good idea to integrate this with your firewalls and routers for
maximum protection.
This module instantiates for each listener individually, and therefore has a
built-in cleanup mechanism and scaling capabilities. Because of this per-child
design, legitimate requests are never compromised (even from proxies and NAT
addresses) but only scripted attacks. Even a user repeatedly clicking on
'reload' should not be affected unless they do it maliciously. mod_dosevasive
is fully tweakable through the Apache configuration file, easy to incorporate
into your web server, and easy to use.
Plack::Middleware::AddDefaultCharset is a port of the
AddDefaultCharset configuration directive of the Apache HTTP server.
This is a very small (7 Kb) HTTP server. It runs from inetd, which means
its performance is poor. But for low-traffic sites, it's quite adequate.
It implements all the basic features of an HTTP server.
Net::Groonga::HTTP is a client library for Groonga http server.
Groonga is a fast full text search engine. Please look
http://groonga.org/.
Mod_python allows embedding Python within the Apache http server
for a considerable boost in performance and added flexibility
in designing web based applications.