Using ConditionalGet and Encoder is straightforward. First impliment the ConditionalGet, then if the cache is not valid, encode and send the content
This script emulates a document that changes every 20 seconds.
This is version: Mon, 23 Dec 2024 12:03:20 -0500
For these pages all 200 responses are sent in chunks a second apart, so you should notice that 304 responses are quicker. You can also use HTTP sniffers like Fiddler (win) and LiveHTTPHeaders (Firefox add-on) to verify headers and content being sent.
must-revalidate
Cache-Control value unless max-age
is set. To get Opera to follow the spec, ConditionalGet will send Opera max-age=0
(if one is not already set).