maxAgeFraction, Expires header questions

"Massimo B. " <[email protected]> Wed, 08 Jan 2014 09:58:18 +0100
Newsgroups gmane.comp.web.polipo.user
Message-ID <[email protected]>
Hi,

I don't understand that variable in detail.

Though "4.1.1 Tuning validation behaviour" has this documentation:

"If an instance has no `Expires' header but has a `LastModified' header, it 
becomes stale when its age reaches either `maxAgeFraction' of the time since 
it was last modified or else the absolute value `maxAge', whichever happens 
first."

The default is:
maxAgeFraction float 0.100000 Fresh fraction of modification time.


Is my understanding correct?
0.1 means 1/10, so if 100 minutes is the time since it was last modified, 
the object is stale when the age becomes 10 minutes?

Why is this variable a factor and not absolute time?


General question to understand the caching better:
I tried to fine-tune the variables from chapter 4.1.1 , especially all the 
max*Age variables. I was wondering that the command

,----[  ]
| wget -q -O - http://www.willuhn.de/products/jameica/releases/version-nightly
`----

and also my browser returned an old version from the cache. Only wget --no-
cache returned the new version. On 2014-01-07 I was getting "2.5.0" as 
result, but "2.7.0" was currently set and only returned by reloading the 
browser page.

,----[ /etc/polipo/config ]
| allowedClients = 127.0.0.1
| cacheIsShared = false
| censorReferer = maybe
| censoredHeaders = from, accept-language
| chunkHighMark = 104857600
| disableIndexing = false
| disableServersList = false
| diskCacheRoot = "/var/cache/polipo/"
| diskCacheTruncateTime = 14d2h
| logSyslog = true
| maxAge = 56d1h
| maxConnectionAge = 5h
| maxConnectionRequests = 10000
| maxExpiresAge = 100d1h
| maxNoModifiedAge = 7d
| objectHashTableSize = 0
| objectHighMark = 16384
| parentProxy = "myproxy:8080"
| proxyAddress = "127.0.0.1"
| proxyName = "localhost"
| relaxTransparency = maybe
| serverIdleTimeout = 15m
| serverMaxSlots = 10
| serverSlots = 10
`----

Actually there are 3 caches envolved: the browser cache, polipo, the myproxy
The server response does not have any Expires header:

,----[]
| $ wget -q --server-response -O - \
|     http://www.willuhn.de/products/jameica/releases/version-nightly
|   HTTP/1.1 200 OK
|   Content-Length: 6
|   ETag: "26aba4-6-4edd6a8588380"
|   Date: Tue, 07 Jan 2014 07:50:40 GMT
|   Last-Modified: Wed, 18 Dec 2013 22:35:10 GMT
|   Server: Apache/2.2.15 (Linux/SUSE)
|   Content-Type: text/plain
|   Accept-Ranges: bytes
|   Age: 89273
|   Connection: keep-alive
|   Warning: 113 localhost:8123 Heuristic expiration
| 2.7.0
`----

But the browser cache showed that object with Expires 2014-01-09 07:22:13 
which could be the reason for returning the cached object. Who does add this 
Expires header? The Browser, polipo or the outside proxy?

Best regards,
Massimo
(*looking forward for the next release*)


------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk