Keep-Alive, bir web sitesi ziyareti sırasında oluşan internet bağlantısı sırasında veri akışını kolaylaştıran ve hızlandıran, web sitelerinin daha hızlı çalışmasını sağlayan önemli bir özelliktir. Keep-Alive ile iki cihaz arasındaki bağlantının aktif olup olmadığı kontrol edilmekte ve bağlantıların kopması önlenmektedir. Keep-Alive aynı zamanda, HTTP bağlantılarını aktif hale getirerek, tek bir TCP (Transmission Control Protocol) aktarım katmanından birden fazla HTTP isteğinin iletilmesine ve alınmasına imkân tanır. Bu işlem ile bir sonraki isteklerin iletilme süreleri de kısaltılmaktadır. Keep-Alive özet olarak, TCP bağlantıları ile dosya gönderim hızlarını artırmak için kullanılan bir özelliktir. Keep-Alive özelliği etkinleştirmesi ise kod diziliminin, “.htaccess” dosyasına eklenmesi ile gerçekleşmektedir. Etkinleştirmenin tamamlanması için, server side (sunucu tarafında) bazı ayarların yapılmasına da gerek duyulmaktadır. Enable Keep-Alive çözümünün detayları, yazımızın devamında yer alıyor.

Keep-Alive Nedir? Nasıl Çalışır?

Keep-Alive, bir TCP bağlantısı üzerinden dosyaların gönderilmesi sırasında bağlantının canlı ve açık kalması sayesinde çalışmaktadır. Keep-Alive kullanım amacı hızın artırılması olmaktadır. Keep-Alive etkinleştirmesi 4 farklı yolla gerçekleşmektedir. Keep-Alive özelliği ile web sitesi ziyaretçilerinin, kullanmış oldukları tarayıcılarda, her bir dosya için yeni istek iletmek yerine, TCP bağlantısı ile tüm içeriklerin indirilmesi sağlanmaktadır. Bu şekilde kullanıcı alanında işlem hızı artmaktadır. İndirme işlemine Javascript, CSS, görsel dosyaları, videolar gibi tüm dosya türleri dâhil olmaktadır. Web siteleri için oldukça önem taşıyan Keep-Alive, siteyi ziyaret eden kullanıcıların tüm işlemlerini tek bir kalıcı HTTP bağlantısında sağlamasına imkan tanımaktadır. Web sitelerinin performans artışı için, Keep-Alive önemli ve değerli bir özelliktir. Keep-Alive çalışma mantığı, web sunucusu ile tarayıcı arasında iletişim kurmak, gelen istek miktarlarını azaltmak ve web sitesinin daha hızlı işlemesini sağlamak üzerine kurulmaktadır.

Keep-Alive Avantajları Nelerdir?

Keep-Alive kullanımı, web sitelerinin hızını fark edilir oranda arttırırken, kaynak kullanımlarını minimum seviyeye azaltmaktadır. Keep-Alive avantajları aşağıdaki şekilde belirtilmektedir;

  • Keep-Alive HTTP isteklerini düşürerek, CPU (İşlemci) ve bellek kullanımlarının azaltılmasını sağlamaktadır.
  • Keep-Alive, isteklerin aynı TCP bağlantısından iletilmesini sağlayarak, HTTP hat bağlantısı oluşturmaktadır.
  • HTTP istekleri, web siteleri için çok büyük miktarda CPU süresi ve kaynak kullanımı gerektirmektedir. HTTP ve SSL kullanan siteler, Keep-Alive özelliği ile hız alanında desteklenmektedir.
  • Sitelerin açılış, sayfa geçiş hızları artarak, gecikme süreleri azalmaktadır. Keep-Alive ile site performansları önemli ölçüde yükselmektedir.
  • Keep-Alive tüm güncel tarayıcılar tarafından desteklenmektedir.
  • Keep-Alive etkinleştirmesi ile site performansı artarken, SEO sonuçları da daha etkili olmaktadır. Bu durum arama motoru sonuçlarına olumlu şekilde yansımaktadır.

Keep-Alive Etkinleştirmesi Nasıl Yapılır?

Keep-Alive etkinleştirmesi yapmak için ihtiyacınız olacak dosya erişimleri aşağıdaki şekilde sıralanmıştır;

  • htaccess dosyasına erişim
  • .httpd.conf dosyasına erişim
  • .httpcoremodule dosyasına erişim

Bir web sitesinde Keep-Alive özelliğinin mevcut durumda aktif olup olmadığını kontrol etmek gerekmektedir. Keep-Alive etkinlik kontrolünü yapabileceğiniz ve sitenizin performansını ölçebileceğiniz siteler ise aşağıda belirtilmektedir;

  • Uptrends
  • PerfTool
  • KeyCDN Speed Test
  • Google PageSpeed Insights
  • GTmetrix

Web sitesi performans ölçümü ve değerlendirmesi yapıldıktan sonra, analiz sonuçları %100 olarak belirtiliyorsa başka herhangi bir işlem yapmaya gerek olmamaktadır. Çünkü bazı web sitelerinde Keep-Alive özelliği “Default” (Varsayılan) olarak etkin durumda olmaktadır. Bu durumda yeni bir işleme gerek kalmamaktadır. Ancak Keep-Alive etkin değilse aşağıdaki seçeneklerden birini uygulayarak, bu özelliği etkinleştirmeniz mümkün olmaktadır.

.htaccess Dosyası Üzerinden Keep-Alive Etkinleştirmesi

Keep-Alive özelliğinin web sitesinde etkinleştirilmesi için, aşağıda verilen kod diziliminin .htaccess dosyası içerisine eklenmesi yeterli olmaktadır.

<ifModule mod_headers.c>

Header set Connection keep-alive

</ifModule>

Dosya içerisine yerleştirilen kodlar ile Keep-Alive özelliği etkinleştirilerek, mevcut sunucu ayarları geçersiz duruma getirilmektedir. Sonrasında ise kalıcı bağlantı aktifleşecek, Keep-Alive özelliği devreye girecektir.

.httpd.conf Dosyası Üzerinden Keep-Alive Etkinleştirmesi

Apache yapılandırma dosyası erişimi ile Keep-Alive uzantısı etkinleştirmek mümkün olmaktadır. Apache yapılandırması aşağıdaki şekilde gösterilmektedir. 

  • Tabloda belirtilmiş olan “Keep-Alive On” bölümü, uzantının etkinleştirildiğini belirtir.
  • Max Keep Alive Requests” ise web sitesinde yer alan tek bir bağlantı için tanımlanan maksimum istek sayısına işaret etmektedir. Web sitelerinde başlangıç için önerilen istek sayısı 50’dir. 
  • Keep Alive Timeout” alanı, istemci üzerinden sunucuya iletilen isteklerin, ne kadar süre boyunca bekletilmesi gerektiğini göstermektedir. İlk etapta önerilen değerler, 5 ilâ 10 saniye arasında olmaktadır. Bu değerler daha sonra opsiyonel olarak değiştirilmektedir. Değerlerlerin çok yüksek tanımlanması, sunucunun aşırı yüklenmesine neden olmaktadır. 
  • .httpd.conf dosyasına erişememe durumunda ise komut satırına aşağıdaki dizin yazılarak, çalıştırılmaktadır.

NGINX Sunucusu Üzerinden Keep-Alive Etkinleştirmesi

NGINX sunucusunda Keep-Alive özelliği genellikle etkin durumdadır. Ancak opsiyonel olarak devre dışı bırakıldığı durumlara da rastlanabilir. NGINX sunucusunda Keep-Alive etkinleştirmesi “HTTP Core Module” kullanımı ile gerçekleştirilmektedir. İşlem adımları ise;

  • NGINX sunucusunda “keepalive_disable” değeri aranır.
  • Keep-Alive çalışmama nedeni değerin atanmamasıdır.
  • Devre dışı bırakılmış değer, yeniden tanımlanarak Keep-Alive özelliği etkinleştirilir.

Windows Server Üzerinden Keep-Alive Etkinleştirmesi

Windows işletim sistemine sahip sunucu kullananlar için, Keep-Alive özelliği, uzantının komut satırına eklenmesi ile etkinleştirilir. Keep-Alive etkinleştirmesi işlem akışı için aşağıdaki komut kullanılmaktadır.

Keep-Alive özelliğini devre dışı bırakmak istediğinizde ise aşağıdaki komut kullanmalısınız.

Enable Keep-Alive Değişiklik Kontrolü

Yukarıda belirtilmiş olan Enable Keep-Alive çözümlerinden herhangi birini uyguladıktan sonra, etkinleştirme analizi yapılması gerekiyor. Uptrends gibi web sitesi performans ölçüm araçlardan yararlanılarak, gerekli analizleri yapabilirsiniz. Analiz sonucunda aşağıdaki bildirim görüntülenecektir.

Enable Keep-Alive etkinlik kontrolü, HTTP Headerları üzerinden de yapılabiliyor. Sisteme aşağıdaki komut dizinini girerek, kontrol sağlayabilirsiniz.

Örneğin;

Sonuç Analizi;

Connection: Keep-Alive” satırı, değişikliklerin yapılmış olduğunu ve Keep-Alive özelliğinin etkinleştirildiğini gösterir. Web siteleri için Keep-Alive özelliğin etkinleştirilmesi, site hızı ve performansı açısından oldukça önemlidir. Kalıcı TCP bağlantısı ile site sayfaları çok daha hızlı yüklenecek ve sitenin verimliliği artacaktır. Bu da kullanıcı dostu bir web sitesi için en önemli noktalardan biridir.

Keep-Alive Özelliğinin Web Siteleri İçin Önemi

Web sitelerini ziyaret eden kullanıcılar, sitede bulunan her görsel, video ya da script içerikleri için ayrı birer bağlantı isteği yollar. Bir web sitesinde, her bir sayfada 20 farklı bağlantı bulunduğunda, site ziyaretçisi 20 ayrı istek göndermektedir. Günlük ziyaretçi sayısının yüksek olduğu web sitelerinde, sürekli olarak istek iletilerek sayfaların tıklanması, sitenin hızının düşmesine neden olmaktadır. Site hızı problemi, bir web sitesi için tolere edilebilecek bir durum değildir. Site performansının en önemli kriterlerinden olan sayfaların yüklenme hızları, Keep-Alive özelliği ile desteklenmektedir. Keep-Alive tüm hız problemlerini gidermek için tasarlanmış, işlevsel bir araç özelliği taşımaktadır. Keep-Alive özelliğinin etkinleştirilmesi ile ziyaretçiler ne kadar fazla istek iletse bile, sistemde tek bir sorgu ve tek bir istek şeklinde tanımlanmaktadır. 

TCP (Transmission Control Protocol) aktarım katmanı ile sağlanan tek sorgu, işlem akışını ve sorgulama sayılarını azaltma özelliği taşımaktadır. Keep-Alive özelliğinin etkinleştirilmesi ile site ziyaretçileri, siteye çok daha hızlı giriş yapmaktadır. Ziyaretçiler, site sayfaları içerisinde gezinti işlemlerini çok daha kolay gerçekleştirmektedir. Keep-Alive özelliği ile site performanslarının ölçülebilir şekilde arttığı gözlemlenmektedir. Tüm tarayıcıların da desteklemiş olduğu Keep-Alive sistemi, web sitelerinde sorunsuz bir şekilde çalışmakta ve işlemci, bellek kullanımı gibi alanlarda ciddi oranlarda tasarruf sağlamaktadır.

Site Hızı ve Keep-Alive İlişkisi

Dijital dünyada yer alan bir web sitesinin yüklenmesi sırasında geçen süreye “Site Hızı” adı verilmektedir. Web sitelerinin masaüstü bilgisayarlarda yüklenme süreleri 8 ilâ 11 saniye arasında olmaktadır. Bu süre mobil cihazlar için, 15 saniyeye kadar çıkabiliyor. Google algoritmalarını incelediğimizde, web sitelerinin yüklenme hızının 2 saniye olması yönünde tavsiye verdiği görülüyor. Verilen bu değer, web dünyası için “İdeal Site Hızı” olarak tanımlanmaktadır. 

Bir web sitesinin, tüm katmanlarının yüklenmesi, ortalama olarak 1,5 saniye sürmektedir. Tavsiye edilen süre değeri, ortalamaların üzerinde bulunmaktadır. Oluşturulan bu sistem ile, site ziyaretçilerinin, site sayfaları yüklenirken boş bir sayfa ile karşılaşmalarının önüne geçilmektedir. İdeal site hızında olan bir web sitesi, kullanıcı boyutunda da “Hızlı Site” kategorisine alınmaktadır. Arama motorlarının işleyiş biçimlerinde, ziyaretçileri memnun kalmayacakları bir siteye yönlendirmek istemedikleri görülüyor. Bu yüzden site hızı, arama motorları için oldukça önem taşıyan bir konudur. 

SEO konusunda da kullanıcı deneyimi en önemli kriterler arasında olduğu için, web sitelerinin hızlı yüklenmesinin önceliği bir kez daha anlaşılıyor. Web sitelerinin hızı konusunda pek çok araştırma da vardır. Yapılan araştırmaların sonuçları göstermektedir ki, ziyaretçilerin geç yüklenen bir web sitesinden çıkma oranı (Bounce Rate) oldukça yüksektir. Bu konuyla ilgili en somut örnek ise Amazon olarak gösterilmektedir. Dünya üzerinde oldukça yüksek kullanıcı sayısı olmasına rağmen Amazon’un site hızının 1 saniye yavaşlaması ile bir yıl içerisinde 2 milyar doların üzerinde zarara neden olabileceği saptanmıştır. Verilen örnekler, web sitelerinin hız konusunda ne kadar hassas olması gerektiği göstermektedir. Keep-Alive özelliğinin etkinleştirilmesi ile tüm hız problemlerinin önüne geçildiği gibi işlemci ve bellek kullanımları da önemli oranda azaltmaktadır. Keep-Alive özelliği etkinleştirilmiş bir web sitesi, arama motorları ve site kullanıcıları açısından değer kazanmaktadır.

Sık Karşılaşılan Hatalar ve Çözümleri