Subject: Re: p1: Via and gateways

From: Mark Nottingham <[email-masked]>
Date: Sat, 20 Apr 2013 17:55:59 +1000

On 20/04/2013, at 5:21 PM, David Morris <[email-masked]> wrote:
> 
> I don't care about MUST, but I think the Via header can be useful for
> problem determination. A smart content server could also adjust for
> a detected accelerator and/or transcoder ... perhaps by avoiding
> optimizations dependant on a direct connection and byte/byte transfer
> between the client and the server.
> 
> So I'm very much in favor of keeping the Via: header.

Definitely not talking about getting rid of it. The (only, specific) point here is whether a gateway that doesn't add Via to responses should be called non-conformant.

Personally, I think it should be a MUST for proxies, in both directions. However, for a gateway, it either shouldn't be a requirement at all (for responses), or it should be a SHOULD with a get-out clause for reasons of security (along with a note that they'll need to accept responsibility for any issues caused by omitting Via). Still should probable be a MUST for requests from gateways.

Cheers,

--
Mark Nottingham   http://www.mnot.net/

---

From: David Morris <[email-masked]>
Date: Sat, 20 Apr 2013 08:17:31 -0700 (PDT)

On Sat, 20 Apr 2013, Mark Nottingham wrote:

> Definitely not talking about getting rid of it. The (only, specific)
> point here is whether a gateway that doesn't add Via to responses should
> be called non-conformant.

I didn't think you were making that suggestion, but I see comments about
lack of use turning into suggestions for removal.

> Personally, I think it should be a MUST for proxies, in both directions.
> However, for a gateway, it either shouldn't be a requirement at all (for
> responses), or it should be a SHOULD with a get-out clause for reasons
> of security (along with a note that they'll need to accept
> responsibility for any issues caused by omitting Via). Still should
> probable be a MUST for requests from gateways.

I'm not sure how to express it, but the requirement probably should be
based on whether the traffic leaves the control of the organization that
owns the gateway (or even proxy). I think Willy Tarreau noted a
performance concern for some types of gateways if the requirement is
added to modify the message.

Dave Morris

---

From: Willy Tarreau <[email-masked]>
Date: Sat, 20 Apr 2013 09:25:09 +0200

On Sat, Apr 20, 2013 at 12:21:52AM -0700, David Morris wrote:
> > p1 Section 2.3 says:
> > > However, an HTTP-to-HTTP gateway that wishes to interoperate with
> > > third-party HTTP servers must conform to HTTP user agent requirements
> > > on the gateway's inbound connection and must implement the Connection
> > > (Section 6.1) and Via (Section 5.7.1) header fields for both
> > > connections.
> > 
> > This means that accelerators and CDNs MUST generate a Via header on the
> > outbound connection. This isn't widely practiced, and I'm not sure it's
> > necessary. Comments?
> 

OK but Mark is not discussing about removing it but keeping the MUST
since a number of existing products already don't add it and will not
for some of the reasons mentionned in this thread.

So I think that based on your feedback this MUST should be turned into
a SHOULD.

Willy

---

From: Willy Tarreau <[email-masked]>
Date: Sat, 20 Apr 2013 10:09:19 +0200

On Sat, Apr 20, 2013 at 05:55:59PM +1000, Mark Nottingham wrote:
> Definitely not talking about getting rid of it. The (only, specific) point
> here is whether a gateway that doesn't add Via to responses should be called
> non-conformant.
> 
> responses), or it should be a SHOULD with a get-out clause for reasons of
> security (along with a note that they'll need to accept responsibility for
> any issues caused by omitting Via). Still should probable be a MUST for
> requests from gateways.

But then do we want to declare all gateways non-conformant ? The only gateway
I've seen use the Via header was abusing it to put the client's IP address
into it, and none of the hosted servers behind it were ever confused by this
despite being a few tens of various products!

The only use I see with Via is to convey the original message's HTTP version,
but most (all?) gateways do not change this version because it's already
painful to be a gateway, you generally don't want to add more burden by
changing the protocol version between the two sides!

Willy