Subject: "Via" header field

From: Frédéric LEDAIN <[email-masked]>
Date: Mon, 2 Oct 2000 10:52:44 +0200 (MEST)

Hi all.

If a proxy-cache delivers an entity without revalidation, does it has to send 
the header field "Via" ?

Thanks.

Frédéric LEDAIN ([email-masked])
--
Research & Development Engineer
BoostWorks

---

From: "Scott Lawrence" <[email-masked]>
Date: Mon, 2 Oct 2000 09:21:48 -0400

> If a proxy-cache delivers an entity without revalidation,

Yes.  The purpose of 'Via' is to allow the end systems to detect the
identity and versions of any proxies - it has nothing to do with
validation.

--
Scott Lawrence         Architect             <[email-masked]>
Virata             http://www.virata.com/         http://emweb.com/

---

From: Jeffrey Mogul <[email-masked]>
Date: Mon, 02 Oct 2000 10:41:25 -0700

If a proxy-cache delivers an entity without revalidation, does it
    has to send the header field "Via" ?
    
First of all, if the message arrived at the proxy with a "Via"
header, it wouldn't make sense (under any interpretation of
the spec) for the proxy to delete the Via header.  So presumably
what you really meant to ask was 
	does a proxy add its identity+protocol information to
	the Via header (or add a new Via header if one is not
	already present)?

The spec (section 14.45) says:
   The Via general-header field MUST be used by gateways and proxies to
   indicate the intermediate protocols and recipients between the user
   agent and the server on requests, and between the origin server and
   the client on responses.

If your proxy has the response in its cache, then obviously
your proxy is an "intermediate ... recipient" of the message,
and therefore MUST use the Via header.  The spec makes no
exception for cached responses.

If you think about it, the Via mechanism would be useless if
a proxy did not add itself when returning a cached response.
The paragraph I quoted above goes on to say:
			      It is analogous to the "Received" field of
   RFC 822 [9] and is intended to be used for tracking message forwards,
   avoiding request loops, and identifying the protocol capabilities of
   all senders along the request/response chain.

If it only appeared on non-cached messages, it would not be
very useful in tracking down problems with caching proxies,
would it?

-Jeff