From bf90fbf8686fe7e0ea9b86fd13457e860a8ab89d Mon Sep 17 00:00:00 2001
From: Laurent Bercot
- A strict reading of the -HTTP/1.0 specification -says that the Request-Line is the only piece of client-provided data that can -be used to identify a resource, and that extension headers can modify the -interpretation and processing of that resource but not change what -resource is served. -
- -- This goes directly against the use of the Host header to identify -the host of a resource and that is used in HTTP/1.1. -
- -- A lot of HTTP servers out there don't really care about that, and have -historically used Host to perform virtual hosting even in HTTP/1.0, -even though it goes against the specification. Consequently, clients have -adapted, and -even the popular -curl client sends a Host header in HTTP/1.0. -
- -- Since the point of the Web is interoperability, tipidee aligns with -the common practice, and will read a client-provided Host header, -if any, to determine what domain the request is directed to, even in -HTTP/1.0 though it is contrary to the specification. I refer to this -practice as "HTTP/1.05". -
- -- Not necessarily: you could listen to 0.0.0.0 for IPv4, and -:: for IPv6. But if you don't want your server to listen to -all the addresses on your machine, then yes, you will have -to run one process per address:port tuple. -
- -- It's okay though: every listening process is very small. The skarnet.org -server has two network cards and runs a web server on both of them, on -IPv4 and IPv6, over HTTP and HTTPS, which makes 8 services. Plus one -s6-log logger process -for each of these services. Plus a supervisor for every service and every -logger — for a whooping total of 64 long-running processes just for -its web server functionality; and it's still not even noticeable, the -amount of resources it consumes is negligible. So, don't worry about it; -all your resources are still available for the serving itself. -
- -- Note that this allows you to run different instances of -tipideed, on different sockets, with different -configurations, if you need it. Use the -f option to specify a -different config file in your instances. -
-