Thanks for the reply. Yes we understand that when an entry in cache is
stale, we make conditional get requests. We are wondering if there is way
we dont make conditional get instead just make unconditional get call,
since AWS S3 returns as 304 status code even when there is header removed
from the metadata and my team's framework relies on these headers.

I was thinking of having an attribute (say noConditionalCalls) in cache
config which on max-age simply makes a get call.
https://hc.apache.org/httpcomponents-client-5.2.x/current/httpclient5-cache/apidocs/org/apache/hc/client5/http/impl/cache/CacheConfig.html

I look for the presence of this attribute here
https://github.com/apache/httpcomponents-client/blob/master/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachingExec.java#L317
and decide that i build unconditional get request.

Thanks
Sneha

On Tue, Nov 7, 2023 at 2:18 PM Oleg Kalnichevski <ol...@apache.org> wrote:

> On 07/11/2023 17:27, Sneha Murganoor wrote:
> > Use case: We have Caching Apache Http Client calling s3 backend. When
> > metadata (http headers) changes with no changes in payload, s3 sends us
> > "304 NOT Modified" status code with current modified headers. But apache
> > reading 304 merges previous headers in cache with headers in response. So
> > when a particular header is removed from a 304 response, Apache still
> adds
> > this to the response which they get from cache in mergeHeaders method
> > CacheUpdateHandler class.
> >
>
> HttpClient does so because it is expected to according to the HTTP spec.
>
>
> https://www.rfc-editor.org/rfc/rfc9111.html#name-updating-stored-header-fiel
>
> >
> > RevalidateCacheEntry merges headers from cache which do not exist any
> more,
> > Is there a way that we don't revalidateCacheEntry when we are past
> max-age
> > set in cache and just call the backend?
> >
>
> Usually executing a conditional request and letting the origin server
> decide whether to send a new resource representation (200) or update the
> existing one (304) is more efficient and this is way HttpClient does. I
> am not aware of a standard way of accomplishing what you are asking by
> using request Cache-Control options.
>
> Oleg
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org
> For additional commands, e-mail: httpclient-users-h...@hc.apache.org
>
>

Reply via email to