hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jon Moore (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HTTPCLIENT-1032) cache revalidation of variants does not update original variant entry
Date Fri, 10 Dec 2010 11:44:01 GMT

    [ https://issues.apache.org/jira/browse/HTTPCLIENT-1032?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12970142#action_12970142
] 

Jon Moore commented on HTTPCLIENT-1032:
---------------------------------------

Oleg,

I'm in the process of figuring that out by creating a patch that fixes it. :) My suspicion
is that we can do this without breaking API compatibility, although it might mean keeping
around methods that don't get used by the main implementation anymore. For example, HttpCacheEntry#getVariants()
that just returns a Set will probably be deprecated (although will still work) and we'll be
using HttpCacheEntry#getVariantMap() instead going forward.

Jon


> cache revalidation of variants does not update original variant entry
> ---------------------------------------------------------------------
>
>                 Key: HTTPCLIENT-1032
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1032
>             Project: HttpComponents HttpClient
>          Issue Type: Bug
>          Components: Cache
>    Affects Versions: 4.1 Beta1
>            Reporter: Jon Moore
>            Priority: Minor
>         Attachments: variant-entry-update-test.patch
>
>
> When the cache stories multiple variant entries due to Vary headers in responses, the
cache correctly sends a conditional request containing the etags of any existing variants
on a "variant miss" (incoming request does not match the request variants already cached).
In addition, when it receives a 304 response, it correctly returns the indicated variant to
the request that causes the variant miss. However, it does not update the pre-existing variant
cache entry as recommended by RFC 2616.
> For example:
> request 1, User-Agent: agent1 results in a 200 OK with Etag: etag1 and Vary: User-Agent.
> request 2, User-Agent: agent2 causes an If-None-Match to the origin; if it returns 304
Not Modified with Etag: etag1
> request 3, User-Agent: agent1 results in a 200 OK but gets the (outdated) entry that
resulted from request 1
> in other words, the origin response from request 2 does not update the variant for "agent1".
> This does not cause incorrect behavior (this is a SHOULD) but does miss out on some caching
opportunities here.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org


Mime
View raw message