You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by to...@aol.com on 2010/06/02 23:14:19 UTC

Re: Fast by default (FWIW - Some tests)

> Bryan McQuade wrote...
>
> thanks! it is really great that you did this investigation.

You're welcome, but I wouldn't really call that an 'investigation'.
More like just a quick 'observation'.

> RE: checking to see if in cache, try typing the URL into the nav bar
> and hitting "enter" rather than reloading. 

Tried that ( with Safari ). No conditional GET was sent.
Behavior was the same as pressing the 'Refresh' Toolbar button.
The entire document was 'Reloaded' and not 'Refreshed'.

OT: If this discussion is going to continue let's agree that there
IS, in fact, a difference between saying 'Reload' and 'Refresh'.

On most browsers, the Toolbar button is SUPPOSED to behave as
a 'Refresh' option. A browser is supposed to check its local
cache and issue a 'conditional GET' request if it has a 
non-expired copy of the entity onboard.

A RELOAD is when this local-cache-check process is 'skipped' and a 
browser simply disregards the content of its cache and RELOADS the 
page with no conditional GET request.

CTRL-R is the industry standard browser RELOAD command. Works the same
for both the MSIE and Mozilla/Firefox browser lineage. On Apple/Safari
it's COMMAND-R.

Interesting side note: Official documentation for Safari actually says
the Toolbar Button is SUPPOSED to be the 'Refresh' option ( NOT RELOAD ),
just like other browsers, and that pressing SHIFT-Refresh is the 'official' 
way to force a page to RELOAD instead of REFRESHING. If that is actually 
the case then the quick Safari test I did really would seem to indicate 
that the response with the 'Vary: Accept-Encoding' header was NOT CACHED.

> most browsers use a more
> aggressive reload algorithm (bypassing the cache for hte html) on
> reload.

Of course. See above about the established standards and the difference
between 'Refresh' and 'Reload'. 

> also could you set an explicit resource expiration? otherwise you're
> operating at the whim of caching heuristics which aren't explicitly
> specified by the HTTP RFC. 

That is exactly why I did NOT add any resource control directives.
The point of the test(s) was to observe the DEFAULT caching behavior.

> Try setting an Expires or Cache-Control:
> max-age header on your response. See
> http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.2.4 for
> info on heuristics. 

See above. I'm perfectly familiar with the directives.
NOT using any of them is/was part of the testing.

> In my tests most browsers implement the 10% rule but not all.

YOUR tests?
Exactly what tests are you referring to?
Are you saying you already have some detailed caching tests
for X number of browsers?
Do you have any 'tests' of your own that involve 'Vary:' headers
and local caching behavior?
Can you share any of those results or would that violate
Google's information sharing policy?

> If you have time can you also test with safari4? Perhaps there was an
> issue in 3.x that was fixed in 4.x.

I am not an Apple person. I do not personally own any Apple hardware.
The MacBook I used for a test is a loaner from a client. I will 
not/cannot change their current software configuration(s).

Bryan, don't take this the wrong way, but everyone is perfectly aware
of who you are and who you work for and what your/their agenda is. 
I'm not criticizing that in any way. You have every right to be 
here contributing to an open-source project...

...but remember that SOME of us just do this as a HOBBY.

People like you are being PAID to be here and it's part of YOUR JOB
to discover/know the answers to some of the questions.

I. myself, am simply curious. There is no paycheck behind anything
I do with regards to Apache. 

As an employee of Google I would imagine you have far more resources
than I do up to and including any number of machines that you could
configure with any browser you want for your OWN testing.

> one thing that's also useful is to first load a page to put the
> resource in the browser cache, then shut down the browser and restart
> it to try to load that page again. this makes sure that the resource
> was really persisted to the disk cache and isn't just being reserved
> out of some temporary in memory cache.

Great idea... you should make that part of YOUR testing.
My curiosity has already been satisfied.
Things are a little better than the were a few years ago.
That was all I wanted to know yesterday.

Now it's back to my REAL job, which has nothing to do with 
Content-encoding on the World Wide Web.

> thanks again! very cool that you did this.
>-bryan

Again... you are welcome.
Let me/us know how your OWN testing goes there at Google.

Yours
Kevin