Remy Maucherat wrote:
> On Fri, 2009-04-17 at 09:38 +0100, Mark Thomas wrote:
>> Can you remember what didn't work with Transfer-Encoding?
> 
> I don't remember, it was years ago. I simply used the encoding name
> specified in T-E to add the compression input filter (for input) rather
> than using the compression custom hack. I could not get browsers to do
> anything at the time, so I switched to content-encoding (which is the
> same thing from a user perspective, but it worked).
> 
> The problem number 2 with T-E is that it is point to point. So the proxy
> has to decompress the entity, T-E cannot be cached as is, it's like
> chunking. So it is less efficient. However, T-E is really the right
> thing to do at the connector level, using content-encoding should be up
> to the application (and random compression filters). Too bad it did not
> work ...

Worth checking the current state to see if it has changed then.

>>> I don't understand why giving an option to not send an ETag would not
>>> also be a solution. At least, if it does not, I do not understand how
>>> proxies are not broken.
>> To quote Roy from bug 39727:
>> "removing etags for the entire configured scope allows clients to use
>> the last-modified timestamp for range requests, which would be just as
>> bad as not changing ETag"
> 
> Still, we would comply with the spec, and it becomes the proxy
> responsibility. My point is to demonstrate the specification is broken.
> It is then up to the proxies impls to do the right thing, or do a lawyer
> approach to the problem. If they do, I suggest we can do the same thing,
> and adding an option to drop ETags is perfectly acceptable.
> 
>>> I also think proxies should be smarter, and assume serving of both a
>>> compressed and an uncompressed version, obviously using the same ETag
>>> (and send the right version depending on whether or not the client has
>>> compression). Otherwise, there's no way things can be efficient.
>> It appears that some caches do already do this although behaviour is far
>> from consistent among caches. Unfortunately this is outside the spec so
>> there is no guarantee of what the behaviour may be.
> 
> Maybe so, but it is an efficient solution.

I'm currently thinking along the following lines:

See if T-E support is any better now that it was a few years ago when
you looked at it. (An initial Google has been inconclusive - I need to
do some actual testing).

For TC7, *if* T-E support is better do something along the lines of:
- Use T-E for compression by default
- Depending on browser support for T-E provide options to
  - use T-E even if clients don't send the right request headers
  - fall back to using C-E
- Provide options for:
  - using C-E by default
  - including/not including a vary header
  - modifying/removing the ETag

If T-E support in browsers is poor, just provide the additional
configuration options for C-E.

For TC6 don't make the T-E changes but maybe backport some/all of the
C-E configuration options so folks can tweak things to work a little
better for the edge cases with their favourite proxy cache.

Mark



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to