Hi,
per RFC an HTTP/1.1 compliant web server MUST support pipelining, but to
me it looks like httpd does not.
Here is a simple test, with a small httpd.conf (mostly "default"):
prefork 10
server "default" {
listen on * port 80
root "/htdocs"
}
types {
text/css css
text/html html htm
text/txt txt
}
The following test command pipelines two .txt requests to httpd running
on localhost:
(printf "GET /request1.txt HTTP/1.1\nHost: localhost\n\nGET /request2.txt
HTTP/1.1\nHost: localhost\nConnection: close\n\n"; sleep 10 ) | telnet
localhost 80
httpd replies to the first request correctly, with:
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 5708
Content-Type: text/txt
Date: Sun, 03 Jan 2016 12:45:45 GMT
Last-Modified: Sun, 03 Jan 2016 11:50:27 GMT
Server: OpenBSD httpd
<.txt body content snipped>
Then httpd keeps the connection open, ignoring(!?) the second request,
not sending the second reply.
>From what I understand, it should either send the second response or
(if pipelining is not wanted/supported) really close the connection?
Thanks,
Regards,
Joerg