From bf90fbf8686fe7e0ea9b86fd13457e860a8ab89d Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Tue, 24 Oct 2023 14:20:39 +0000 Subject: Some doc modifications Signed-off-by: Laurent Bercot --- doc/faq.html | 93 +++++++++++++++++++++++++++++++++++++++++++++++++ doc/index.html | 7 ++++ doc/quickstart.html | 70 ------------------------------------- doc/tipidee-config.html | 2 +- 4 files changed, 101 insertions(+), 71 deletions(-) create mode 100644 doc/faq.html diff --git a/doc/faq.html b/doc/faq.html new file mode 100644 index 0000000..d2594f6 --- /dev/null +++ b/doc/faq.html @@ -0,0 +1,93 @@ + + + + + + tipidee: FAQ + + + + + + +

+tipidee
+Software
+skarnet.org +

+ +

tipidee caveats and FAQ

+ +
+

Caveats

+
+ +

Host support in HTTP/1.0

+ +

+ 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 care about a strict reading of HTTP/1.0 +(or even a strict reading of anything, really), 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 no matter what the spec says. I refer to this practice as +"speaking HTTP/1.05". +

+ +
+

Frequently asked questions

+
+ +

I want my web server to listen to more than one address. Do I need +to do all that for every address I have?

+ +

+ 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. +

+ + + diff --git a/doc/index.html b/doc/index.html index 76971e9..8a27de2 100644 --- a/doc/index.html +++ b/doc/index.html @@ -191,6 +191,13 @@ the previous versions of tipidee and the current one.
  • The /etc/tipidee.conf file format
  • +

    Usage notes

    + + +

    Design notes