Ganzseitiges Caching – Das Bedürfnis nach Geschwindigkeit
Veröffentlicht: 2020-10-02
Website-Caching und Full-Page-Caching sind Techniken, um die Ladezeit von Websites zu beschleunigen. Es ist eine sehr gängige Praxis, die fast überall verwendet wird, da sie die Leistung der Website enorm steigert. Caching funktioniert, indem es den Webserver bei seiner Arbeit viel effizienter macht. Das Ganzseiten-Caching ist eine fortgeschrittenere Form des Cachings. Um das Ganzseiten-Caching zu verstehen, beginnen wir also mit dem normalen Caching und bauen von dort aus weiter.
Joe's Auto-Parts Shop – Eine statische Website
Stellen Sie sich Joe vor. Er ist ein Typ, der ein großes Lager voller Autoteile besitzt und betreibt. An der Vorderseite des Lagers befindet sich ein Schalter, an dem Kunden ankommen, um seine Teile zu kaufen. Wenn ein Kunde ankommt, um einige Teile zu kaufen, folgt die Transaktion diesem Verfahren:
- Der Kunde überreicht Joe eine Liste mit Autoteilen.
- Joe holt den 1. Teil und legt ihn auf den Tresen.
- Joe holt den 2. Teil und legt ihn auf den Tresen.
- Und so weiter bis zum Ende der Liste.
- Der Kunde zahlt und geht.
Wie gilt das also für eine statische Website?
Eine statische Website ist eine Website, die keine Datenbanken, PHP-Skripte oder andere Programme verwendet. Stellen Sie sich eine einfache Website vor, die nur aus HTML-Seiten und Bildern besteht. Joe und sein Lager stellen die Teile dieser einfachen Website wie folgt dar:
- Das Warehouse ist der physische Server.
- Joe ist die Webserver-Software zB Apache
- Die Autoteile sind die Dateien, aus denen eine Website besteht, z. B. Bilder und HTML-Dateien.
Das Verfahren zum Bereitstellen dieser einfachen Site ist:
- Ein Browser fordert eine Webseite von Apache an, der auf dem Server ausgeführt wird.
- Apache liest die 1. Datei von der Festplatte und sendet sie an den Browser.
- Apache liest die 2. Datei von der Festplatte und sendet sie an den Browser.
- Und so weiter, bis es alles geholt hat.
- Der Browser zeigt die fertige Webseite an.
Dieses Setup funktioniert gut für kleine Websites, scheitert aber schnell unter Druck.
Joe ist beschäftigt – Caching rettet den Tag
Joes System funktioniert gut, bis er anfängt, beschäftigt zu werden. Tatsächlich ist er so beschäftigt, dass er die meiste Zeit damit verbringt, von der Theke ins Lager zu gehen, und er kann mit all den neuen Kunden nicht Schritt halten.
Joe könnte ein zusätzliches Lager kaufen und jemanden einstellen, der dort arbeitet, um den zusätzlichen Bedarf zu decken. Dies ist jedoch kostspielig und maximiert nicht die Ressourcen, die er bereits hat. Stattdessen denkt Joe darüber nach, wie er seinen Prozess in seinem Lager effizienter gestalten könnte.
Joe erkennt, dass 90 % der Teile, die er für Kunden abholt, eines von nur 10 sind. Also beschließt er, diese 10 Teile unter der Theke aufzubewahren, wo er sie sofort greifen kann, wenn jemand danach fragt. Die meisten Kundenwünsche kann er nun ohne Gang ins Lager direkt von der Theke bedienen. Das geht viel schneller.
Caching macht etwas sehr ähnliches auf einem Webserver. Genau wie bei Joes Gang zurück ins Warehouse ist die langsamste Aktion beim Bereitstellen statischer Dateien das Laden der Datei vom Speichergerät. Beim Caching werden die am häufigsten angeforderten Dateien im RAM gespeichert, wo auf sie tausendmal schneller zugegriffen werden kann, als sie aus dem Speicher zu lesen.

Diese Art des Cachings funktioniert hervorragend für Bilder und andere statische Dateien, aber WordPress ist eine dynamische Website mit PHP-Skripten und einer Datenbank.
Geben Sie das Ganzseiten-Caching ein.
Joes Leben wird kompliziert – PHP, Datenbanken und Caching
Eine neue Toyota-Werkstatt wird in derselben Stadt wie Joe eröffnet und sie verwenden Joe, um die Ersatzteile zu liefern. Das ist großartig für Joe, abgesehen von einem Problem, Toyota bestellt Teile nur nach ihrer Toyota-Teilenummer. Sie geben Joe einen riesigen Katalog, damit er die Toyota-Teilenummern nachschlagen und sie den Teilen in seinem Lager zuordnen kann, wann immer er eine Bestellung von ihnen erhält.
Aber das macht Joe wieder langsam.
Jedes Mal, wenn er das Toyota-Teil im Katalog nachschlagen muss, dauert es lange. Selbst wenn es eines der Teile unter der Theke ist, kann er nicht einfach danach greifen, weil er erst die Toyota-Teilenummer im Katalog nachschlagen muss. Sein altes System, die 10 am häufigsten nachgefragten Teile unter der Theke zu halten, hilft immer noch, aber die neuen Katalogsuchen sind jetzt der große Engpass.
Joe denkt noch einmal darüber nach und findet eine Lösung. Ihm fällt auf, dass die meisten Toyota-Bestellungen nur einer kleinen Gruppe gehören. Also schreibt er einen Spickzettel mit den gängigsten Toyota-Teilenummern und den entsprechenden Teilen und klebt ihn auf die Arbeitsplatte.
Jetzt muss er für die meisten Toyota-Bestellungen nicht mehr den Katalog verwenden, er kann einen Blick auf den Spickzettel werfen und die Toyota-Teilenummer fast sofort in ein Teil umwandeln, das er abrufen kann.
WordPress-Sites haben ein ähnliches Problem wie Joe. WordPress erstellt jede Webseite, wenn sie vom Browser angefordert wird. Die HTML-Seiten, die Ihr Browser lädt, existieren nicht, bis Sie WordPress danach fragen.
So erstellt WordPress eine Seite Ihrer Website:
- Ein Browser fordert eine Webseite von WordPress an.
- Ein PHP-Skript akzeptiert die Anfrage und fragt die Datenbank nach dem ab, was zum Erstellen der Seite benötigt wird.
- Die Datenbank sucht und gibt alle Informationen an den PHP-Prozess zurück.
- Das PHP-Skript erstellt die Seite mit diesen Informationen und sendet sie an den Browser.
Das ist eine Menge Arbeit und der Grund dafür, dass nicht gecachte WordPress-Websites um ein Vielfaches mehr Computerressourcen benötigen als statische Websites.
Genau wie Joe erhält Ihre WordPress-Site sehr oft Anfragen für dieselben Seiten, z. B. die Zielseite für Ihre Site, da diese Seite jedes Mal bedient wird, wenn ein neuer Besucher eintrifft. In einem Nicht-Caches-Setup muss WordPress diese Anfrage mit PHP-Skripten verarbeiten und Datenbankabfragen für jeden Besucher durchführen, obwohl es jedes Mal genau dieselbe Seite erstellt.
Das bedeutet viel Doppelarbeit.
Full-Page-Caching löst dieses Problem. Es stellt fest, dass eine bestimmte Anfrage und die Seite, die generiert wird, immer gleich sind, sodass eine Kopie der Seite im RAM zwischengespeichert wird. Es führt auch einen Spickzettel der Anfragen, die diese Seiten erstellt haben, also wenn ein Besucher eine Seite anfordert, die er generiert hat, bevor er sie direkt aus dem RAM bedient, anstatt sie neu zu erstellen.
Dies reduziert die Arbeitslast des Webservers erheblich, indem viele PHP-Prozesse und Datenbanksuchen umgangen werden und zuvor generierte Seiten direkt aus dem RAM bereitgestellt werden. Dadurch erhalten Sie eine dynamische WordPress-Website, die fast so effizient ist wie eine statische Website.
Caching und Full-Page-Caching sind hervorragende Technologien, die die Ressourcen Ihres Webservers nutzen, um die Effizienz Ihres Webservers zu maximieren und Ihnen eine schnelle WordPress-Site zu bieten.