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 

Reply via email to