Gecikme(Latency) Nedir ve Nasıl Düşürülür?

Gecikme(Latency) Nedir ve Nasıl Düşürülür?

Gecikme, bir isteğin(Request) gönderenden alıcıya ulaşması, ve alıcının bu isteği işlemesini kapsayan toplam süredir. Daha da sadeleştirmek gerekirse tarayıcı(Browser) ile sunucu(Server) arasındaki gidiş-dönüş süresidir. Bu sürenin tabii ki de mümkün olduğunca sıfıra yakın olması istenir, fakat ortada bunun olmasını engelleyen ve elimizde olmayan bazı unsurlar var. Yine de bazı tekniklerle bu süreyi kısaltmak mümkün.

Gecikmenin Sebepleri

Ağ gecikmesini meydana getiren başlıca sebepler:

  • Kablosuz bağlantı, fiber optik kablolar vb. iletim kanallarının kendi yapılarından kaynaklanan gecikme.
  • Paketlerin bir kaynaktan diğerine aktarılırken fiziksel sınırlara takılması(Işık Hızı).
  • Yönlendiriciler(Router), paketleri iletirken başlıklarında yer alan bilgiyi analiz eder ve bazen de başlığa bilgi ekler. İnternet'te paketler hedefine ulaşmak için birden fazla yönlendiriciden geçerler. Bu süreç de gecikmenin artmasına sebep olur. Eğer Windows kullanıcısı iseniz CMD ekranında "tracert www.siteismi.com" komutunu kullanarak  gönderdiğiniz paketin hedef siteye ulaşırken hangi yönlendiricilerden geçtiğini görebilirsiniz.

Gecikme Süresi Nasıl Düşürülür?

Gecikme, bazı teknikler kullanılarak azaltılabilir. Sunucu gecikme süresini azaltmanız içeriğinizin kullanıcılara daha hızlı aktarılmasını, dolayısıyla sayfa yüklenme süresinin kısalmasını sağlar.

  • HTTP/2: HTTP/2 kullanmak gecikmeyi en aza indirmek için mükemmel bir yoldur. HTTP/2, alıcı ve gönderici arasındaki gidiş-dönüş yolculuklarını azaltarak gecikme süresini olabildiğince kısaltır.
  • Harici HTTP İstekleri: Eğer sayfanızda kendi sunucunuz dışında barınan kaynaklar kullanıyorsanız sayfanızı görüntüleyen tarayıcılar harici HTTP isteği yapıyor demektir. Gecikme süresi kaynağın barındığı sunucunun hızına ve kalitesine bağlı olarak uzar. 
  • CDN Kullanımı: CDN kullanmak, sayfa kaynaklarınızı dünyanın çeşitli yerlerindeki sunuculara önbellekleme yapmanızı sağlar. Böylece kullanıcılar, sayfayı görüntülemek için gereken statik kaynakları sitenin sunucusu yerine kendine daha yakında bulunun varlık noktasından(PoP) alacağı için gecikme süresi kısalır.
  • Prefetching: Site kaynaklarınızı prefetch etmek gecikme süresini doğrudan kısaltmayacaktır, fakat kullanıcılar açısından "sayfa daha hızlı yüklendi" algısı yaratacaktır. Prefetching uygulandığında, öncelikle sayfanın görüntülenmesi için gereken kaynaklar yüklenir. Daha sonra kullanıcı, yüklenen sayfada gezintideyken tarayıcı arka planda diğer kaynakları indirmeye başlar. Kullanıcı, kaynakları arka planda önceden yüklenmiş bir bağlantıya tıkladığında sayfa içeriğini hemen görüntüleyecektir.
  • Tarayıcı Önbelleği: Gecikmeyi azaltacak diğer bir önbellekleme yöntemi de tarayıcı önbelleklemesidir. Tarayıcılar, gecikme süresini kısaltmak ve sunucuya yapılacak istek sayısını azaltmak için web sayfasındaki bazı dosyaları yerel makinede saklayabilirler. Kullanıcı, web sayfasındaki içeriği sunucudan istemek yerine kendi makinesi üzerinden görüntüleyeceği için sayfa yüklenme süresi kısalır.