[core] consolidate duplicated read-to-close code
[lighttpd.git] / README
blobcb72e75592dee6923350d1494e9f032772dad5d1
2 ========
3 lighttpd
4 ========
6 -------------
7 a light httpd
8 -------------
10 :author: Jan Kneschke
11 :Date: $Date: 2004/11/03 22:25:54 $
12 :Revision: $Revision: 1.8 $
14 :abstract:
15   lighttpd a secure, fast, compliant and very flexible web-server
16   which has been optimized for high-performance environments. It has a very
17   low memory footprint compared to other webservers and takes care of cpu-load.
18   Its advanced feature-set (FastCGI, CGI, Auth, Output-Compression,
19   URL-Rewriting and many more) make lighttpd the perfect webserver-software
20   for every server that is suffering load problems.
22 :documentation:
23   http://wiki.lighttpd.net/
25 the naming
26 ----------
28 lighttpd is a __httpd__ which is
30 - fast as __light__ning and
31 - __light__ when it comes to memory consumption and system requirements
33 Features
34 --------
36 Network
37 ```````
39 - IPv4, IPv6
41 Protocols
42 `````````
44 - HTTP/1.0 (http://www.ietf.org/rfc/rfc1945.txt)
45 - HTTP/1.1 (http://www.ietf.org/rfc/rfc2616.txt)
46 - HTTPS (provided by openssl)
47 - CGI/1.1 (http://CGI-Spec.Golux.Com/)
48 - FastCGI (http://www.fastcgi.com/devkit/doc/fcgi-spec.html)
50 Advanced Features
51 `````````````````
53 - load-balanced FastCGI
54   (one webserver distributes requests to multiple PHP-servers via FastCGI)
55 - custom error pages (for Response-Code 400-599)
56 - virtual hosts
57 - directory listings
58 - streaming CGI and FastCGI
59 - URL-Rewriting
60 - HTTP-Redirection
61 - output-compression with transparent caching
63 FastCGI-Support
64 ```````````````
66 - parses the Response-header and completes the HTTP-header accordingly
67 - Keep-Alive handling based on Content-Length header
69 PHP-Support
70 ```````````
72 - same speed as or faster than apache + mod_php4
73 - handles various PHP bugs in the FastCGI SAPI
74 - includes a utility to spawn FastCGI processes (necessary for PHP 4.3.x)
76 Security features
77 `````````````````
79 - chroot(), set UID, set GID
80 - protecting docroot
82 HTTP/1.1 features
83 `````````````````
85 - Ranges (start-end, start-, -end, multiple ranges)
86 - HTTP/1.0 Keep-Alive + HTTP/1.1 persistent Connections
87 - methods: GET, HEAD, POST
88 - Last-Modified + If-Modified handling
89 - sends Content-Length if possible
90 - sends Transfer-Encoding: chunk, if Content-Length is not possible
91 - sends Content-Type
92 - on-the-fly output compression (deflate, gzip)
93 - authentication: basic and digest
94   (http://www.ietf.org/rfc/rfc2617.txt)
96 HTTP/1.1 compliance
97 ```````````````````
99 - Sends 206 for Range Requests
100 - Sends 304 for If-Modified Requests
101 - Sends 400 for missing Host on HTTP/1.1 requests
102 - Sends 400 for broken Request-Line
103 - Sends 411 for missing Content-Length on POST requests
104 - Sends 416 for "out-of-range" on Range: Header
105 - Sends 501 for request-method != (GET|POST|HEAD)
106 - Sends 505 for protocol != HTTP/1.0 or HTTP/1.1
107 - Sends Date: on every requests
109 Intended Audience
110 -----------------
112 - Ad-Server Front-Ends ("Banner-Schleuder")
113   - delivering small files rapidly
114 - php-servers under high load
115   (load-balancing the php-request over multiple PHP-servers)
117 Works with
118 ----------
120 It has been tested to work with
122 - IE 6.0
123 - Mozilla 1.x
124 - Konqueror 3.1
125   (for Keep-Alive/Persistent Connections, Accept-Encoding for PHP + gzip)
126 - wget
127   (for Resuming)
128 - acrobat plugin
129   (for multiple ranges)
132 Works on
133 --------
135 lighttpd has been verified to compile and work on
137 - Linux
138 - FreeBSD
139 - NetBSD
140 - Solaris 8 + 9
141 - SGI IRIX 6.5
143 missing for HTTP/1.1 compliance
144 -------------------------------
145 - parsing chunked POST request
147 -----------------
148 Starting lighttpd
149 -----------------
151 As daemon in the background: ::
153   $ lighttpd -f <configfile>
155 or without detaching from the console: ::
157   $ lighttpd -D -f <configfile>