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:
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.