[Haskell-cafe] a tiny HTTP server.. that doesn't work

Corey O'Connor coreyoconnor at gmail.com
Tue Oct 22 23:54:46 UTC 2013


On Mon, Oct 21, 2013 at 7:28 PM, Joey Adams <joeyadams3.14159 at gmail.com>wrote:

> On Mon, Oct 21, 2013 at 5:15 PM, Corey O'Connor <coreyoconnor at gmail.com>wrote:
>
>> Curiously: If the Network.HTTP.close is removed the server does not fail,
>> but some requests takes several seconds to process. I presume the ordering
>> of effects is then correct, but without the explicit close the close occurs
>> only a GC time.
>>
>
> The client may be trying to reuse the connection; see
> http://en.wikipedia.org/wiki/HTTP_persistent_connection.  This seems
> consistent with your results:
>
>  * With the close call: connection is closed right after client sends a
> second request, so client whines.
>  * Without the close call: client waits around for a response, then gives
> up and establishes another connection.
>
> To confirm, add another receiveHTTP call client_interact and see if it
> returns another Request.
>

​Thanks!​ I'll try your test and see if anything changes.

Though I thought the code accounted for this: A connection close header is
added to each response. Which I thought would cause the client to close the
connection.​​ I could be totally wrong tho. There could be some additional
aspect of HTTP connections I do not understand.

Properly supporting persistent connections should be pretty easy. There is
another Network.HTTP server package that does this:
http://hackage.haskell.org/package/http-server-1/docs/Network-HTTP-Server.html

So I'll give that a shot and report back.

Thanks!
Corey
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20131022/dc8fd20d/attachment.html>


More information about the Haskell-Cafe mailing list