On Tue, 2 May 2006 15:40:30 +0200 (SAST)
"Graham Leggett" <[EMAIL PROTECTED]> wrote:
> On Tue, May 2, 2006 3:24 pm, Brian Akins said:
>
> >> - the cache says "cool, will send my copy upstream. Oops, where has my
> >> data gone?".
>
> > So, the cache says, okay must get content the old fashioned way (proxy,
> > filesystem, magic fairies, etc.).
> >
> > Where's the issue?
>
> To rephrase it, a whole lot of extra code, which has to be written and
> debugged, has to say "oops, ok sorry backend about the If-None-Match, I
> thought I had it cached but I actually didn't, please can I have the full
> file?". Then the backend gives you a response with different headers to
> those you already delivered to the frontend. Oops.
There is not such scenario. I will simulate a request using the disk_cache
format:
. Incoming client requests URI /foo/bar/baz
. Request goes through mod_http_cache, Generate <hash> off of URI
. mod_http_cache ask mod_cache for the data associated with key: <hash>.header
. No data:
. Fetch from upstream
. Data Fetched:
. If format #1 (Contains a list of Vary Headers):
. Use each header name (from .header) with our request
values (headers_in) to regenerate <hash> using HeaderName+
HeaderValue+URI
. Ask mod_cache for data with key: <hash>.header
. No data:
. Fetch from upstream
. Data:
. Serve data to client
. If format #2
. Serve data to client
Where is the difference ?
> Keeping the code as simple as possible will keep your code bug free, which
> means less time debugging for you, and less time for end users trying to
> figure out what the cause is of their weird symptoms.
We are trying to get it more simple as possible by separating the storage
layer from the protocol layer.
--
Davi Arnaut
Davi Arnaut