- From: Roy T. Fielding <fielding@apache.org>
- Date: Fri, 17 May 2002 14:35:23 -0700
- To: Bob Scheifler - SMI Software Development <rws@East.sun.com>
- Cc: ietf-http-wg@w3.org
>> Yes, I am sure. ECONNREFUSED is a response, but not an HTTP response. > > If you say so. The spec simply says "invalid response", not > "invalid HTTP response" and not "an invalid HTTP response or an > explicit indication that no HTTP response will ever be received". An invalid HTTP response is any response which is not valid HTTP, which is certainly defined by the specification. > >>> How do you define "invalid response"? >> >> Why does that matter? > > Are you asking why it matters how terms in a specification are defined? No, I am saying that you shouldn't expect the specification to define every term in the English language. "invalid" and "response" are fully defined. >> You will find that what the user agent needs to do for no-connection is >> identical to what it needs to do for other 502 situations. > > Quite the contrary. If I interpret 502 as meaning the upstream server > is non-conforming (broken), I won't ever retry an operation that > gets a 502 result. But if I got the equivalent of ECONNREFUSED back, > I might well retry the operation. That is, if I could get the equivalent > back, which apparently I can't. I don't follow that reasoning. There is no way for the recipient to distinguish between a temporary failure on the part of the gateway and a permanent failure. This is a distributed system in which components are changed independently and frequently. All 502 responses are indications of a temporary problem. > In your interpretation, why do both 502 and 503 exist? Because 503 is for origin servers to indicate that service is unavailable using a valid HTTP response. It is rarely used on the Web, but does indicate semantics that are different from "the origin didn't respond with a valid message." ....Roy
Received on Friday, 17 May 2002 17:36:11 UTC