Re: keepalives and proxies: a request and a proposal

>     The `Connection: Keep-Alive my-name' solution allows each compliant
>     proxy to realize whether is talking to a compliant proxy/client or not.
> 
> One quibble: we should not use a host name here; we should use
> the IP address of the host (and on a multi-homed host or proxy,
> the IP address that is actually assigned to the connection).  This
> avoid the overhead (and possibly the failure) of an extra DNS lookup
> at each proxy and server.

That won't work either (see below).

> Aside from that, I agree; this is 100% foolproof because every link in
> the chain must prove that it understands this header.  I don't
> understand Roy's comment that it does not adequately account for
> hierarchical proxies or gateways.

I was referring to the Proxy-Connection thingy in Alex's draft, which
will not be in HTTP/1.1.  The IP thingy has other problems.

> Roy sez:
>     The only way to differentiate communication capabilities is through
>     the protocol name + version number, since that is the only feature
>     that cannot be passed on by a proxy.
> The implication is that the 1.1 protocol spec will say something
> like "a client or proxy must not send or forward a Keepalive:
> header to a proxy [or server?] with a version number below 1.1".
> Is that what you are planning, Roy?

No, it says a recipient cannot trust a Connection header received from
an HTTP/1.0 message.  This can't be replaced by including the IP number
in the header field because the IP is changed when sent through a tunnel.
The only general way to solve this problem is to change to HTTP/1.1.

> One problem that the "Keepalive: myaddress" approach seems to
> solve better than the version-number based approach is that it
> allows a 1.1 proxy to not implement persistent connections.
> That is, under Roy's approach, persistent connection support
> would have to be 100% mandatory for all 1.1 (and later) proxies.

Nope -- removal/replacement of the Connection header, and any header fields
named within the Connection header, will be mandatory.

> Under the alternate approach, any proxy not wanting to support
> persistent connections (either for implementation reasons or
> for policy reasons) could simply drop the "Keepalive: myaddress"
> header.

Persistent connections are identified by the keep-alive keyword in
the Connection header -- the Keep-Alive header is just for optional
parameters describing the keep-alive.

.....Roy

Received on Friday, 17 November 1995 15:40:25 UTC