On 01/11/17 05:53, Alex Rousskov wrote:
On 10/31/2017 02:51 AM, Amos Jeffries wrote:
That operational state (HTTP underway) also means RFC 7230 is the
relevant place to look for behaviour requirements. Section 6.3.1 says:
A proxy MUST NOT automatically retry non-idempotent requests.
So it depends entirely on what type of HTTP request was being performed.
Unfortunately, it is more nuanced than that. The RFC section you are
quoting lives inside the "6.3. Persistence" section about persistent
connections. It also talks about retransmitting a "sequence of
requests", further implying connection persistency scope. The old RFC
2616 even gave a very pconn-specific example as the rationale.
Squid implementation assumes that all those requirements apply to
persistent connection race conditions and only to those conditions.
Whether that is what RFC authors wanted is not clear to me. It would be
nice to clarify that with the HTTP WG. Any volunteers?
Alex.
As the first line of that section says:
"
HTTP/1.1 defaults to the use of "persistent connections"
"
So IMO it is reasonable to assume that the HTTP/1.1 portion of the
traffic is always scoped as 'persistent'. Most of the section(s) are
about issues later in the connection traffic, but those specific
statements might be applied before the first transaction is complete.
The question seems to be more about whether we scope the period between
SYN+ACK and first data bytes arriving to be governed by TCP or HTTP/1.1
protocol. The HTTP side has at least those statements I referenced for
better interoperable behaviour than currently coded.
Amos
_______________________________________________
squid-users mailing list
squid-users@xxxxxxxxxxxxxxxxxxxxx
http://lists.squid-cache.org/listinfo/squid-users