Well, every CGI script doesn't NEED to have Expires, since the default that
most proxies will use is to never cache items that don't have Expires or
Last-modified information (CGI scripts).
>What I understand you to be saying is that the proxy server's caching
>behavior is based only on the meta-information fields and on the URL
>-- not including POST query data! -- that generated the page. And
>that furthermore, lack of meta-information results in
>server-dependent behavior. Both of these are quite reasonable, but
>imply that every CGI script needs to preemptively expire its output.
Based on Last-modified and Expires. Your POST query information going to a
remote server is never cached. The results of a POST or simply a cache
possibility. Content only has effect based on size, since a cache can use
data size to determine whether an item should be cached or for how long.
For example, I don't cache things over 16MB (Internet Talk Radio), even
though I have a very large cache on our proxy. Keep in mind that how the
cern_httpd caches today is not the only way to cache either and that other
proxies to come, say that people on this list write might cache
differently.
>Presumably it would be OK to add a fixed date which is guaranteed to
>be in the past, like:
> Expires: Sunday, 01-Jan-00 00:00:00 GMT
>Is that right?
Hmm, I suppose that might make sense. That should override any proxy settings.
In general I wouldn't worry about adding Last-modified or Expires to your
CGI scripts. What I do encourage is adding Expires information that
supports caching if applicable. For example, if you have a database that is
updated and reindexed at 2:00 GMT every day, then when you send the results
of query, you know that the results are good until the next index at 2:00
GMT, so that can go into the Expires meta-field. This applies to many of
the CGI queries on the Web today.
ka