httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Roy T. Fielding" <field...@liege.ICS.UCI.EDU>
Subject Re: mod_proxy changes
Date Wed, 29 May 1996 08:33:59 GMT
>> Nice theory -- it just doesn't work in practice.  The problem is that
>> not all caches and origin servers share the same canonicalization algorithm.
> 
> Why not? If the canonicalization is not determined how can its use be
> sanctioned in a proxy?

Because it should be determined -- it just isn't in practice.

>> A cache's storage handling algorithm is not part of the HTTP protocol
>> (and thus not part of the normative requirements [when done correctly]),
>> which is why internal canonicalization is allowed.  However, the cache
>> (more accurately, a proxy) is not allowed to screw up the user's request
>> by mis-canonicalizing the user's request-URI when it is forwarded, and
>> thus the first response will be correct (in the user's view) even if the
>> cache is incompetent.  In practice, it turns out that incorrect hits on
>> correct responses are always preferable to incorrect responses due to
>> broken requests, and thus the problem of a later request getting a
>> cache hit after canonicalization (but not before canonicalization) becomes
>> a non-problem.
> 
> I'm sorry, I got lost in the tangle there. Could you explain in words of one
> syllable, please? With diagrams? ;-)

Not via e-mail -- that would need at least a pint's worth of explanation.

>> Of course, it is never a problem if the origin server avoids using
>> non-reserved characters for reserved purposes (which is when canonicalization
>> breaks), but then the protocol doesn't prevent people from being stupid.
> 
> Ermm .. doesn't that make the server broken? [And therefore not a cause for
> concern within the scope of the spec].

Yes, but it makes the proxy look broken and the proxy gets blamed.
It just works better if it is done as spec'd rather than assuming
that it is safe to canonicalize.  In general, an IETF spec tries to
specify those things that "just work better", in addition to the 
minimal requirements.

......Roy

Mime
View raw message