contao/issues — Issue #741: do not cache POST requests
Author: importer
Created: 2011-11-24 15:57:14+00:00
State: open
Labels: Defect, framework

In Anlehnung an http://typolight.org/forum/topic/8495.html?page=2 :

Nach der HTTP-Spezifikation sollen mit POST angeforderte Seiten nicht in den Cache geschriebenen werden (solange kein entsprechender Header gesendet wird). Derzeit hält sich TL nicht an diese Spezifikation, was es jedoch IMO drigend sollte!

Siehe ""Responses to this method are not cacheable, unless the response includes appropriate Cache-Control or Expires header fields. However, the 303 (See Other) response can be used to direct the user agent to retrieve a cacheable resource. [
```
Der TL-Cache sollte somit wiefolgt (oder ähnlich) geändert werden (http://dev.typolight.org/browser/tags/typolight-2.7.0/system/modules/frontend/FrontendTemplate.php#L131 FrontendTemplate.php, Z. 131 ff.](http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5:)):

```
// define('REQUEST_METHOD', strtoupper($_SERVER['REQUEST_METHOD']))
// Cache page if it is not protected
if (!BE_USER_LOGGED_IN && FE_USER_LOGGED_IN && REQUEST_METHOD != 'POST' && intval($objPage->cache) > 0 && !$objPage->protected)
{
```

REQUEST_METHOD sollte am besten von der Environment-Klasse zur Verfügung gestellt werden.
Man kann sich auch überlegen, alle REQUESTs bis auf GET nicht zu cachen.

Nebeneffekt: Bei Formularen kann jetzt ohne Nebenwirkungen der Cache eingeschaltet werden!

--- _Originally created by FloB on May 22nd, 2009, at 09:02pm (ID 741)_