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

Jon Moore commented on HTTPCLIENT-1515:
---------------------------------------

[~fx.bonnet]: I'm curious: what part of the spec are you referring to? Variant 
cache entries (e.g. due to content negotation) are an example of someplace we 
get multiple cache entries per URI.

That said, you did remind me of another factor here, which is that certain 
events require cache invalidations (e.g. a POST to the URI in question) of all 
related cache entries. Using the method as part of the cache key wouldn't let 
us do that unless we treated it as a variant and registered it in the 
root/parent cache entry. There's already an open issue because variant handling 
requires multiple round trips through the cache (possibly requiring I/O) even 
when only one variant is cached. So I'm not sure that's great either.

So perhaps I'm back to leaning towards the current patchset again, if we can:

1. Only turn on HEAD caching via an opt-in configuration parameter (this would 
include not populating or reading the new method field on HttpCacheEntry unless 
it was on).
2. Add a note in the release notes that cache entries are not serialization 
compatible anymore (I can do that when the patchset is merged).
3. If HEAD caching is turned on, treat a cache entry without a filled-in 
request method as a cache miss for a GET unless it has an entity attached (in 
which case we can assume it was a GET) or if it is a 204 No Content response 
(in which case the responses to HEAD and GET were equivalent). It should be 
safe to use a cache entry with a missing method to satisfy a HEAD request (all 
other normal caching rules aside).

How does that sound?

> Caching responses to HEAD requests
> ----------------------------------
>
>                 Key: HTTPCLIENT-1515
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1515
>             Project: HttpComponents HttpClient
>          Issue Type: Improvement
>          Components: HttpCache
>            Reporter: Tyrone Cutajar
>
> Our system retrieves metadata via HEAD requests using HTTP Client 4.x and 
> would benefit immensely from having the headers in the response cached.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to