- From: Zhong Yu <zhong.j.yu@gmail.com>
- Date: Wed, 4 Jun 2014 11:15:30 -0500
- To: Willy Tarreau <w@1wt.eu>
- Cc: Michael Sweet <msweet@apple.com>, "William Chan (?????????)" <willchan@chromium.org>, HTTP Working Group <ietf-http-wg@w3.org>, Matt Menke <mmenke@chromium.org>
On Wed, Jun 4, 2014 at 10:28 AM, Willy Tarreau <w@1wt.eu> wrote: > On Wed, Jun 04, 2014 at 10:22:48AM -0500, Zhong Yu wrote: >> On Wed, Jun 4, 2014 at 7:49 AM, Willy Tarreau <w@1wt.eu> wrote: >> > Note the last sentence : "*If* the client has an outstanding request ...". >> > For me that clearly means that the client might very well receive a 408 >> > while it did not have an outstanding request, which implies that no byte >> > was sent over the wire yet. >> >> How does the client receive the unprompted 408 reliably? Should the >> client be reading the inbound all the time? > > When it sends a request, it receives the unprompted 408 which was sitting > in the buffers, there's no desynchronization here. As Amos stated it, if I'm not sure how it works. Presumably the client has received server FIN before it starts to write the request. This likely results in an RST, which destroys the client's inbound buffer as well. If the client is monitoring its inbound all the time for ahead-of-time response, we don't need 408 either - the server FIN serves the same purpose. Zhong Yu > the client sees a 408 without sending anything, it's garbage and it trashes > it. If the client sends a request and sees a 408, it's the response to his > request. It does not matter whether the 408 was built before the client > started to send or after. > > Willy >
Received on Wednesday, 4 June 2014 16:15:56 UTC