- From: Anselm Baird-Smith <abaird@w3.org>
- Date: Wed, 4 Sep 1996 09:45:41 +0500
- To: Koen Holtman <koen@win.tue.nl>
- Cc: Jeffrey Mogul <mogul@pa.dec.com>, fielding@liege.ICS.UCI.EDU, http-wg%cuckoo.hpl.hp.com@hplb.hpl.hp.com
Koen Holtman writes: > Jeffrey Mogul: > >To wit: the spec > >explicitly allows your caches to ignore the expiration times > > This is only allowed if a Warning is added, I believe. > > I have always had doubts about whether cache implementers would want > to implement Jeff's Age calculation algorithm without any changes. I can speak for myself here: as I am not as wise as you guys, and as I don't have much time for discussions, I did implement *exactly* (as faithfully as possible - see code below), Jeff's pseudo code. Anselm. BTW: if you find a bug in this code, let me know ! public void updateAges(Request request, Reply reply) { // Quickly save the reponse time: long response_time = System.currentTimeMillis(); setResponseTime(response_time); // HTTP/1.1, Section 13.2.3, Age Calculation long age_value = reply.getAge(); long date_value = reply.getDate(); long request_time = request.getDate(); long apparent_age = Math.max(0, response_time-date_value); long c_received_age = Math.max(apparent_age, age_value); long response_delay = response_time - request_time; // Save the initial age: setInitialAge(c_received_age + response_delay); // Save the date of the reply: if ( date_value > 0 ) setDate(date_value); // Look for HTTP/1.1 specific headers: if ( reply.getMajorVersion() >= 1 ) { // HTTP/1.x specific headers: maxage long maxage = ((long) reply.getMaxAge()) * 1000; if ((maxage < 0) && reply.hasHeader(reply.H_EXPIRES) ) maxage = reply.getExpires() - reply.getDate() ; if ( maxage >= 0 ) setMaxAge(maxage); else setDefaultMaxAge(); // HTTP/1.1 specific headers: *-revalidate if ( reply.getMinorVersion() >= 1 ) { setRevalidate(false); if ( reply.checkMustRevalidate() ) setRevalidate(true); if ( ( ! isShared()) && reply.checkProxyRevalidate() ) setRevalidate(true); } } }
Received on Wednesday, 4 September 1996 06:47:50 UTC