This page defines what HTTP headers moin should use. A recent review of moin 1.5 code showed that there was some stuff broken. See also: * FeatureRequests/LastModifiedHeader. * http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html = Headers moin generates = == All users == * Content-Type: ... * Status: ... * Retry-After: seconds for 503 responses (surge protection) * Date: current date * Vary: Cookie,User-Agent[,Accept-Language if not cfg.language_force] * optional: ETag * optional: Last-Modified (hard to determine, dynamic parts of content!) * optional: Content-Language: xx, yy == Anonymous users == * Cache-Control: public ??? * Cache-Control: s-maxage ??? * Expires: for older caches ??? == Logged in user == * Cache-Control: private * Cache-Control: no-cache * Cache-Control: max-age (same function as (older standard) Expires: header, but has precedence) * Expires: with a date <= date-value to simulate "cache-control: no-cache" for older caches * alternatively(?) Pragma: no-cache (for older caches) == To be checked == * Cache-Control: s-maxage * Cache-Control: must-revalidate * Cache-Control: proxy-revalidate = Headers moin should look at = * If-None-Match: (see ETag and 304 response) * If-Modified-Since (see Last-Modified and 304 response) * Accept-Charset: = Implementations = * rss_rc action emits Last-Modified and Etag headers and responds with 304 if it gets the same back with If-Modified-since and If-None-Match.