Re: [squid-users] R: [squid-users] HTTP/1.0 417 Expectation failed

From: Henrik Nordström <henrik_at_henriknordstrom.net>
Date: Sat, 20 Feb 2010 21:29:02 +0100

lör 2010-02-20 klockan 11:11 +0100 skrev Riccardo Castellani:

> What means "using the delay heuristics" ? Why it should be necessary to send
> using delays ?
> Heuristics ?!

Because of the reasons why 100 Continue exists..

without 100 Continue the clients second option is to send headers, wait
a bit for the headers to most likely arrive and get processed by the
server (including forwarded by proxies etc) and then start sending the
body when it's known within reasonable doubt that the request is
acceptable to the server.

the third option is to just chew along, sending all the data immediately
and hope for the best. But for any larger request this has a high risk
of failure with "Connection reset" if anything (proxy, server or
surrogate server) refuses or fails the request, or in best case wastes
network resources by sending data which will be discarded. All above in
case of an error, naturally not if the request is successfully
processed.

> Some client can crate request with both this header and http1.0 protocol ?!

Every HTTP/1.1 client can, simply by being proxied by an HTTP/1.0 proxy.

HTTP protocol minor version is a hop-by-hop property (not end-to-end)
and is for most processing of the HTTP protocol irrelevant. The only two
places where you need to take note of the received HTTP protocol version
is

a) In servers, when considering to respond with chunked encoding.

b) In clients, when considering to sent request entities using chunked
encoding.

chunked encoding is also a hop-by-hop property btw..

Everywhere else each recipient should process the message according to
it's own protocol implementation.

The errors 417 and 411 is both very similar in this regard, negating the
use of certain HTTP/1.1 features. 417 tells the client that it can not
expect an 100 Continue message and that it need to adjust it's request
sending policy accordingly.

411 says that chunked encoding can not be used and requests need to be
sent with Content-length if they have a request entity body.

Regards
Henrik
Received on Sat Feb 20 2010 - 20:29:08 MST

This archive was generated by hypermail 2.2.0 : Sun Feb 21 2010 - 12:00:05 MST