9 Aralık 2024 Pazartesi
Lütfen önbelleğe almamıza izin verin.
İnternet yıllar içinde büyüdükçe, Google’ın tarama hacmi de arttı. Google’ın tarama altyapısı buluşsal önbellekleme mekanizmalarını desteklese de (aslında her zaman desteklemiştir), yerel önbelleklerden döndürülebilen isteklerin sayısı azalmıştır: 10 yıl önce toplam getirilen verilerin yaklaşık %0,026’sı önbelleğe alınabilirdi ki bu zaten çok etkileyici bir oran değildi; bugün bu sayı %0,017’dir.
Önbellekleme neden önemlidir?
Önbellekleme, internet denilen büyük yapbozun kritik bir parçasıdır. Önbellekleme, sayfaların tekrar ziyaret edildiğinde ışık hızında yüklenmesini sağlar, bilgi işlem kaynaklarından ve dolayısıyla doğal kaynaklardan tasarruf sağlar ve hem istemciler hem de sunucular için muazzam miktarda pahalı bant genişliği tasarrufu sağlar.
Özellikle bireysel URL’ler altında nadiren değişen içeriğe sahip büyük bir siteniz varsa, yerel olarak önbelleğe almaya izin vermek sitenizin daha verimli taranmasına yardımcı olabilir. Google’ın tarama altyapısı, aşağıda tanımlanan buluşsal HTTP önbelleklemesini destekler:
HTTP önbellekleme standardı, özellikle ETag yanıt ve If-None-Match istek başlığı ile Last-Modified yanıt ve If-Modified-Since istek başlığı aracılığıyla.
Şiddetle ETag kullanmanızı öneririz çünkü hatalara ve yanlışlıklara daha az eğilimlidir (değeri, Last-Modified değerinin aksine yapılandırılmamıştır). Ve eğer seçeneğiniz varsa, her ikisini de ayarlayın: internet size teşekkür edecektir. Belki.
İstemcilerin önbelleklerini yenilemesini gerektiren bir değişiklik olarak neyi kabul ettiğiniz size kalmış. Önerimiz, içeriğinizde önemli değişiklikler olduğunda bir önbellek yenilemesi istemenizdir; eğer sadece sayfanızın altındaki telif hakkı tarihini güncellediyseniz, bu muhtemelen önemli değildir.
ETag ve If-None-Match
Google’ın tarayıcıları, ETag tabanlı koşullu istekleri tam olarak
HTTP önbellekleme standardıiçinde tanımlandığı gibi destekler. Yani, Google’ın tarayıcılarına önbellekleme tercihini bildirmek için Etag değerini, erişilen URL tarafından barındırılan içeriğin temsiline özgü herhangi bir rastgele ASCII dizesine (genellikle içeriğin veya sürüm numarasının bir karması, ancak π’nin bir parçası da olabilir, size kalmış) ayarlayın. Örneğin, aynı içeriğin farklı sürümlerini aynı URL altında barındırıyorsanız (örneğin, mobil ve masaüstü sürümü), her sürümün kendi benzersiz ETag değeri olabilir.
Önbelleklemeyi destekleyen Google tarayıcıları, bu URL’nin önceki bir taramasında döndürülen ETag değerini If-None-Match başlığındagönderecektir. Eğer tarayıcı tarafından gönderilen ETag
değeri, sunucunun oluşturduğu mevcut değerle eşleşirse, sunucunuz HTTP gövdesi olmadan bir HTTP 304 (Değiştirilmedi) durum kodu döndürmelidir. Bu son kısım, yani HTTP gövdesinin olmaması, birkaç nedenden dolayı önemlidir:
- sunucunuz içerik oluşturmak için bilgi işlem kaynakları harcamak zorunda kalmaz; yani paradan tasarruf edersiniz
- sunucunuz HTTP gövdesini aktarmak zorunda kalmaz; yani paradan tasarruf edersiniz
İstemci tarafında, kullanıcının tarayıcısı veya Googlebot gibi, o URL altındaki içerik istemcinin dahili önbelleğinden alınır. Herhangi bir veri aktarımı söz konusu olmadığı için bu işlem ışık hızında gerçekleşir, kullanıcıları mutlu eder ve potansiyel olarak onlar için de bazı kaynaklardan tasarruf sağlar.
Last-Modified ve If-Modified-Since
Tıpkı ETaggibi, Google’ın tarayıcıları da Last-Modified tabanlı
koşullu istekleri, tam olarak HTTP Önbellekleme standardında tanımlandığı gibi destekler. Bu, anlamsal açıdan ETag ile aynı şekilde çalışır (kaynağın önbelleğe alınıp alınamayacağına karar vermek için bir tanımlayıcı kullanılır) ve istemci tarafında ETag ile aynı avantajları sağlar.
Eğer Last-Modified kullanıyorsanız birkaç önerimiz var:
- Last-Modified
başlığındaki tarih,HTTP standardına
göre biçimlendirilmelidir. Ayrıştırma sorunlarını önlemek için aşağıdaki tarih biçimini kullanmanızı öneririz: Gün, DD Ay YYYY SS:DD:SS Saat Dilimi”. Örneğin,Cum, 4 Eyl 1998 19:15:56 GMT“. - Zorunlu olmasa da,
max-agealanını
Cache-Controlbaşlığında ayarlamayı düşünün; bu, tarayıcıların belirli bir URL’yi ne zaman tekrar tarayacaklarını belirlemelerine yardımcı olur.max-agealanının değerini, içeriğin değişmeden kalacağı beklenen saniye sayısına ayarlayın. Örneğin,Cache-Control: max-age=94043.
Örnekler
Eğer benim gibiyseniz, buluşsal önbelleklemenin nasıl çalıştığını anlamak zor olabilir, ancak istek ve yanıt zincirine dair bir örnek göstermek bana yardımcı oluyor. İşte nasıl çalışması gerektiğini görselleştirmek için iki zincir: ETag/If-None-Match ve biri
Last-Modified/If-Modified-Since için:
ETag/If-None-Match | Last-Modified/If-Modified-Since | |
|---|---|---|
Bir sunucunun taramaya yanıtı: Bu, bir tarayıcının ön koşul başlık alanlarını kaydedebileceği yanıttır ETag ve Last-Modified. | ||
Sonraki tarayıcı koşullu isteği: Koşullu istek, önceki bir istekten kaydedilen ön koşul başlık değerlerine dayanır. Değerler, doğrulama için sunucuya If-None-Match ve If-Modified-Sinceistek başlıklarında geri gönderilir. | ||
Koşullu isteğe sunucu yanıtı: Tarayıcı tarafından gönderilen ön koşul başlık değerleri sunucu tarafında doğrulandığından, sunucu tarayıcıya bir 304HTTP durum kodu (HTTP gövdesi olmadan) döndürür. Bu, ön koşullar doğrulanana kadar (sunucu tarafında ETag veyaLast-Modified tarihi değişene kadar) sonraki her istekte gerçekleşecektir. |
Kullanıcılarınızı mutlu etmek ve belki de barındırma faturanızdan birkaç kuruş tasarruf etmek istiyorsanız, barındırma veya CMS sağlayıcınızla ya da geliştiricilerinizle siteniz için HTTP önbelleklemesini nasıl etkinleştireceğiniz hakkında konuşun. Başka bir şey olmasa bile, kullanıcılarınız sizi biraz daha sevecektir.
Önbellekleme hakkında sohbet etmek isterseniz, size en yakın
Search Central yardım topluluğunagidin ve önbelleğe alma şeklimiz hakkında yorumlarınız varsa,
önbellekleme hakkındaki belgelere
bu blog yazısıyla birlikte yayınladığımız geri bildirimde bulunun.
Tarama hakkında daha fazla bilgi edinmek ister misiniz? Aralık Ayı Tarama serisinin tamamına göz atın:
Biz bunu nasıl uyguluyoruz
We archive Search Central announcements because client questions often trace back to a change that was announced years ago. Reading the original is faster than reconstructing it from second-hand summaries.
İlgili hizmetler