Tam Sayfa Önbelleğe Alma – Hız İhtiyacı
Yayınlanan: 2020-10-02
Web sitesi önbelleğe alma ve tam sayfa önbelleğe alma, web sitelerinin yüklenme süresini hızlandıran tekniklerdir. Web sitesi performansına getirdiği büyük kazançlar nedeniyle hemen hemen her yerde kullanılan çok yaygın bir uygulamadır. Önbelleğe alma, web sunucusunu işini yaparken çok daha verimli hale getirerek çalışır. Tam sayfa önbelleğe alma, daha gelişmiş bir önbelleğe alma biçimidir, bu nedenle tam sayfa önbelleğe almayı anlamak için normal önbelleğe alma ile başlayalım ve oradan oluşturalım.
Joe'nun Otomobil Parçaları Mağazası – Statik Bir Web Sitesi

Joe'yu hayal et. Araba parçalarıyla dolu büyük bir deponun sahibi ve işleten bir adam. Deponun önünde, müşterilerin onun parçalarını satın almak için geldikleri bir tezgah var. Bir müşteri bazı parçaları satın almak için geldiğinde işlem şu prosedürü takip eder:
- Müşteri Joe'ya araba parçalarının bir listesini verir.
 - Joe 1. parçayı alır ve tezgahın üzerine koyar.
 - Joe 2. parçayı alır ve tezgahın üzerine koyar.
 - Ve böylece listenin sonuna kadar.
 - Müşteri öder ve gider.
 
Peki bu statik bir web sitesi için nasıl geçerlidir?
Statik bir web sitesi, herhangi bir veri tabanı, PHP betiği veya başka bir program kullanmayan bir web sitesidir. Yalnızca HTML sayfaları ve resimlerden oluşan basit bir web sitesi düşünün. Joe ve deposu, bu basit web sitesinin bölümlerini şu şekilde temsil eder:
- Depo fiziksel sunucudur.
 - Joe, web sunucusu yazılımıdır, örneğin Apache
 - Araba parçaları, bir web sitesini oluşturan dosyalardır, örneğin resimler ve HTML dosyaları.
 
Bu basit siteyi sunma prosedürü:
- Bir tarayıcı, sunucuda çalışan Apache'den bir web sayfası ister.
 - Apache diskten 1. dosyayı okur ve tarayıcıya gönderir.
 - Apache diskten 2. dosyayı okur ve tarayıcıya gönderir.
 - Ve böylece her şeyi alana kadar.
 - Tarayıcı, tamamlanmış web sayfasını görüntüler.
 
Bu kurulum, küçük web siteleri için iyi çalışır ancak baskı altında hızla başarısız olur.
Joe Meşgul Ediyor – Önbelleğe Alma Günü Kurtarır

Joe'nun sistemi, meşgul olmaya başlayana kadar iyi çalışır. Aslında o kadar meşgul ki, zamanının çoğunu tezgahtan depoya yürüyerek geçiriyor ve tüm yeni müşterilere ayak uyduramıyor.
Joe fazladan bir depo satın alabilir ve fazladan talebi karşılamak için orada çalışması için başka birini işe alabilir. Ancak bu maliyetlidir ve sahip olduğu kaynakları maksimize etmez. Bunun yerine Joe, sahip olduğu depoda sürecini nasıl daha verimli hale getirebileceğini düşünüyor.
Joe, müşteriler için aldığı parçaların %90'ının sadece 10 parçadan biri olduğunu fark eder. Bu yüzden, birileri istediğinde hemen alabileceği bu 10 parçayı tezgahın altında tutmaya karar verir. Artık müşteri taleplerinin çoğunu depoya gitmeden doğrudan tezgahtan karşılayabiliyor. Bu çok daha hızlı.
Önbelleğe alma, bir web sunucusunda çok benzer bir şey yapar. Tıpkı Joe'nun depoya geri dönmesi gibi, statik dosyalar sunarken en yavaş eylem, dosyayı depolama aygıtından yüklemektir. Önbelleğe almanın yaptığı, en sık istenen dosyaları, depolamadan okumaktan binlerce kat daha hızlı erişilebilecekleri RAM'de tutmaktır.

Bu tür önbelleğe alma, resimler ve diğer statik dosyalar için harika çalışır ancak WordPress, PHP komut dosyaları ve veritabanı içeren dinamik bir web sitesidir.
Tam sayfa önbelleğe almayı girin.
Joe'nun Hayatı Karmaşıklaşıyor – PHP, Veritabanları ve Önbelleğe Alma

Joe ile aynı şehirde yeni bir Toyota atölyesi açılır ve yedek parça sağlamak için Joe'yu kullanırlar. Bu Joe için harika bir sorun dışında, Toyota parçaları yalnızca Toyota parça numaralarına göre sipariş ediyor. Joe'ya Toyota parça numaralarına bakabilmesi ve onlardan bir sipariş aldığında deposundaki parçalarla eşleştirebilmesi için büyük bir katalog veriyorlar.
Ama bu Joe'yu tekrar yavaşlatır.
Katalogda Toyota parçasına ne zaman baksa, bu onun için uzun zaman alıyor. Tezgahın altındaki parçalardan biri olsa bile, ona ulaşamaz çünkü önce katalogda Toyota parça numarasını araması gerekir. En çok talep edilen 10 parçayı tezgahın altında tutmaya yönelik eski sistemi hala yardımcı oluyor ancak yeni katalog aramaları artık büyük bir darboğaz oluşturuyor.
Joe bunu tekrar düşünür ve bir çözüm bulur. Toyota siparişlerinin çoğunun sadece küçük bir gruptan biri olduğunu fark ediyor. Bu yüzden en yaygın Toyota parça numaralarının ve bunlara karşılık gelen parçaların bir kopya kağıdını yazar ve tezgahın üzerine bantlar.
Artık Toyota siparişlerinin çoğu için kataloğu kullanması gerekmiyor, hile sayfasına göz atabilir ve Toyota parça numarasını neredeyse anında getirebileceği bir parçaya dönüştürebilir.
WordPress sitelerinin Joe'ya benzer bir sorunu var. WordPress, tarayıcı tarafından istendiğinde her web sayfasını oluşturur. Tarayıcınızın yüklediği HTML sayfaları, siz WordPress'ten isteyinceye kadar mevcut olmaz.
WordPress sitenizin bir sayfasını şu şekilde oluşturur:
- Bir tarayıcı, WordPress'ten bir web sayfası ister.
 - Bir PHP betiği isteği kabul eder ve veritabanını sayfayı oluşturmak için neye ihtiyacı olduğunu sorgular.
 - Veritabanı arar ve tüm bilgileri PHP işlemine döndürür.
 - PHP betiği sayfayı bu bilgilerle oluşturur ve tarayıcıya gönderir.
 
Bu çok iştir ve önbelleğe alınmamış WordPress web sitelerinin statik web sitelerinden çok daha fazla bilgisayar kaynağına ihtiyaç duymasının nedeni budur.
Tıpkı Joe gibi, WordPress siteniz de her yeni ziyaretçi geldiğinde bu sayfa sunulduğundan sitenizin açılış sayfası gibi aynı sayfalar için çok sık istek alır. Önbelleksiz bir kurulumda, WordPress bu isteği PHP komut dosyalarıyla işlemeli ve her seferinde aynı sayfayı oluşturmasına rağmen her ziyaretçi için veritabanı sorguları yapmalıdır.
Bu, çok sayıda çoğaltılmış çalışma sağlar.
Tam sayfa önbelleğe alma bu sorunu çözer. Belirli bir istek ve oluşturulan sayfanın her zaman aynı olduğunu fark eder, bu nedenle sayfanın bir kopyasını RAM'de önbelleğe alır. Ayrıca, bu sayfaları oluşturan isteklerin bir kopya sayfasını da tutar, böylece bir ziyaretçi, oluşturduğu bir sayfayı yeniden oluşturmak yerine doğrudan RAM'den sunmadan önce talep ettiğinde.
Bu, birçok PHP sürecini ve veritabanı aramasını atlayarak ve önceden oluşturulmuş sayfaları doğrudan RAM'den sunarak web sunucusunun iş yükünü önemli ölçüde azaltır. Bu size neredeyse statik bir web sitesi kadar verimli olan dinamik bir WordPress web sitesi verebilir.
Önbelleğe alma ve tam sayfa önbelleğe alma, web sunucunuzun verimliliğini en üst düzeye çıkarmak ve size hızlı bir WordPress sitesi sağlamak için web sunucunuzun kaynaklarından yararlanan mükemmel teknolojilerdir.
