Zum Hauptinhalt springen

4.9.3. Caching and Application Semantics (Caching und Anwendungssemantik)

4.9.3. Caching and Application Semantics (Caching und Anwendungssemantik)

Beim Entwurf einer Anwendung, die HTTP verwendet, ist es wichtig zu berücksichtigen, wie Caching mit der Semantik der Anwendung interagiert.

Zum Beispiel, wenn eine Anwendung eine Ressource definiert, die eine Liste von Elementen darstellt, und Elemente hinzugefügt oder entfernt werden können, muss die Anwendung berücksichtigen:

  • Wie lange sollte eine gecachte Liste als frisch betrachtet werden?

  • Was passiert, wenn ein Client eine Entscheidung auf Basis einer gecachten Liste trifft, die veraltet ist?

  • Sollte die Anwendung Cache-Invalidierungsmechanismen verwenden, um Caches zu benachrichtigen, wenn sich die Liste ändert?

Anwendungen SOLLTEN (SHOULD) ihre Ressourcendarstellungen und Caching-Strategien so gestalten, dass sie gut zusammenarbeiten. Dies könnte beinhalten:

  • Die Wahl geeigneter Frischelebensdauern basierend darauf, wie oft sich Ressourcen ändern.

  • Die Verwendung bedingter Anfragen, um eine effiziente Validierung zu ermöglichen.

  • Die Bereitstellung von Cache-Invalidierungsmechanismen (z.B. Verwendung von Cache-Control: no-cache für Ressourcen, die sich häufig ändern).

  • Das Design von Ressourcen so, dass sie natürlicherweise cachefähig sind (z.B. Ressourcen nach Möglichkeit unveränderlich machen).