Hallo,
wo kann ich etwas über hash erfahren?
In den beiden Typo3 Büchern wird dies jeweils nur am Rande erwähnt.
Wann werden hash erzeugt und worauf muss ich beim Programmieren einer Extension achten.
Wie kann ich erkennen ob eine Extension hash'es unterstützt?
Super, vielen Dank. Dies hat mir zum großen Teil weitergeholfen. Guter Artikel.
Eine Frage beleibt mir jedoch noch. Im Artikel werden nur GET Parameter erwähnt. Wie sieht es mit POST-Parametern aus?
Wie erkennt TYPO3 dass es bei gleicher URL aber unterschiedlichen POST-Parametern die Seite nicht Cachen darf? (bzw. für die verschiedenen POST Parameter verschiedene Einträge im Cache machen muss)
Ich dachte, genau dafür gibt es den cHash... aber da liege ich vielleicht falsch...
Grüßle
Falk
post variablen sollten im grunde nicht gehasht werden, da es zu viele kombinationen gibt. lies mal das kapitel über die zusammensetzung des hashes und die sicherheitsbeschränkungen!
wenn es beliebig viele möglichkeiten einer GET/POST zusammensetzung gibt, kann dir die datenbank überlaufen weil der cache riesig wird!!!
cHash ist logischerweise nur dann brauchbar, wenn die benötigte Anzahl der Hashes überschaubar bleibt.
Abder die mögliche Kombination von GET ist genauso groß, oder zumindest zu riesig.
Es gibt eigentlich diesbezüglich keinen Unterschied zwischen GET und POST.
Der cHash ist ja eben dazu da zu verhindern dass durch DoS der Cache überläuft.
Wenn also POST nicht gehashed wird kann man auch gleich auf den cHash verzichten.
nein, weil die möglichen hash-werte im vornerein schon bestimmt werden und dann später beim aufruf der seite passen müssen.
wenn es unklar ist welche variablen ankommen und was da drinnsteht, so mach das chashing keinen sinn..
und so gesehen geht das chashing nur mit GETs
Ganz verstanden habe ich dies nicht, macht aber nichts.
Ist es richtig das wenn POST Vaiablen benutzt werden grundsätzlich nicht gecached wird? (und somit auch kein chash erzeugt wird?)
Dann würde das ganze Sinn machen. Denn den Input von Forms zu cachen macht ja in den wenigsten Fällen Sinn.
hoppefamily schriebWenn also POST nicht gehashed wird kann man auch gleich auf den cHash verzichten.
Das ist genauso pauschal wie falsch!
Die Plugins werden ja hauptsächlich über GET und nicht über POST aufgerufen. Schau dir doch mal z.b. tt_news an: Die Artikel, bzw. auch die Darstellungsart wird über GET kodiert und nicht über POST. Somit profitieren sie vom Caching.
POST-Variablen hast du z.B. bei einem Gästebuch, also bei Formularen, wo die Ausgabe hochgradig abhängig von der Nutzereingabe ist. Hier ist Caching natürlich nicht sinnvoll. Bei tt_news hast du im Prinzip keine Nutzerinteraktion (abgesehen davon, daß er sich für verschiedene Artikel entscheiden kann).
hoppefamily schriebAbder die mögliche Kombination von GET ist genauso groß, oder zumindest zu riesig.
Da hast du Recht. Die Kombiniationen sind natürlich THEORETISCH genauso groß, aber praktisch meistens nicht.
Du kannst natürlich eine Artikelliste mit 5 Mio. Artikel haben, die 1x pro Monat aktualisiert wird. Zu jedem Artikel hast du eine Singel-Ansicht auf die von der Listenansicht verlinkt wird (natürlich über GET) und noch 3 Möglichkeiten die Singel-Ansicht zu modifizieren (z.B. ua. die Funktionen eines Artikels alphabetisch auf-/oder absteigend ordnen). Dann hättest du 15 Mio mögliche Kombinationen.
Dafür würde ich jedoch das Caching ausschalten, da das Speichern der gecachten Seiten mehr Ressourcen verbaucht, als gespart wird.
Fazit:
POST wird nicht gecacht, da es hauptsächlich bei hochgradig interaktiven Seiten verwendet wird,
GET KANN gecacht werden, wenn die Seiten quasi "statischen" Charakter haben und die Seiten sicher von mehreren Nutzern abgefragt werden, die dann von der schnelleren Auslieferung profitieren.