As an example, consider successive accesses of http://S/path via an HTTP proxy P:
date(resp1) = Date: Mon Dec 12 19:30:39 CST 1994 lastMod(addr(req2), date(resp1)) = Last-Modified: Fri Dec 9 19:30:39 CST 1994 expires(addr(req2), date(resp1)) = Expires: Fri Dec 16 19:30:39 CST 1994 type(object(resp1)) = Content-Type: text/plain body(object(resp1)) = blah blah blah...
Let
Then at this point, the proxy knows:
e0 = HTTPGet(req1, t0), i.e. e0 in Represent(r, t0) and e0 minimizes AcceptPenalty(req1, Represent(r, t0)) over Represent(r, t0) Last-Modified(r, t0) = t1 Expires(r, t0) = t2
Since there are no URI: headers in the response, the proxy also knows:
Represent(r, t0) = {e0}
Since it knows that e0 is the only element of Represent(r, t0) and hence of Represent(r, t3), it can conclude that e0 = HTTPGet(req2, t3), and it can return resp1 to C2.
If-Modified-Since: Mon Dec 12 19:30:39 CST 1994
If the document has not been modified, the server S will indicate this via resp2 at t4:
304 Not Modified Date: Mon Dec 12 15:30:39 CST 1994
The proxy can conclude that Expires(r, t4) = Expires(r, t0), and proceed as above.
There are certain attributes commont to many information resources. For the resources to which some of these attributes apply, we should develop models and mechanism to make it possible compute the attributes reliably: