[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: An http session that ends with a TCP Reset sent by the server
From: |
Darren Hoo |
Subject: |
Re: An http session that ends with a TCP Reset sent by the server |
Date: |
Sun, 16 Jun 2013 11:17:32 +0800 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (darwin) |
Mark H Weaver <address@hidden> writes:
Hi Mark,
Thanks,
>
> While it is true that the RFCs allow a TCP connection to be "aborted" by
> a RST segment, this is an error condition. It's not a proper way to end
> an HTTP connection under normal circumstances.
>
> I believe the server you are trying to talk to is violating the HTTP
> protocol. Among other things, I believe that a RST segment may cause
> the receiving side to discard any input buffers that have not yet been
> read by the client.
Yes it is violateing the protocol. Sorry to have not mentioned that the
response recieved is from the firewall not the real server.
> I see nothing in RFC 2616 that allows this behavior. In fact, section
> 10.4 explicitly mentions the danger that resetting the connection may
> cause data loss.
>
>> My question is how I can I handle this, ie, read the response body
>> and ignore the RST
>> in Guile without changing anything in libguile?
>
> I'm sorry, but I don't see an easy way to work around this problem
> (which doesn't necessarily mean it can't be done).
>
> Out of curiosity, do you know what software is running on this server?
>
> Have you checked to see whether the server resets the connection when
> talking to a different HTTP client?
>
Yes, both curl and brower receive RST but do not report anything
conceivable to the user.
I think there's no elegant way to deal with this condition with Guile,
maybe I should try other alternative to work around this.