İletişim

Backend (Arka Uç) Nedir?

Kısa tanım

Backend (arka uç), bir web sitesinin veya uygulamanın kullanıcının doğrudan görmediği, sunucu tarafında çalışan katmanıdır. İş kurallarını uygular, veriyi veritabanında saklar ve okur, kullanıcıların kimliğini doğrular, ödeme veya e-posta gibi dış servislerle konuşur ve sonuçları genellikle bir API aracılığıyla ön yüze (frontend) ya da mobil uygulamalara iletir.

Diğer adları: Arka Uç, Back-end, Back End, Sunucu Tarafı, Server-side

Tarayıcıdan gelen isteğin API, kimlik doğrulama ve iş mantığından geçip veritabanı, önbellek ve iş kuyruğuna ulaştığı backend akışı

Görünmeyen tarafta neler olur?

Bir e-ticaret sitesinde “Sepete ekle” düğmesine bastığınızda ekranda değişen tek şey sepet simgesindeki sayıdır. Arka planda ise stok kontrol edilir, fiyat ve kampanya kuralları uygulanır, sepet kaydedilir ve gerekiyorsa başka sistemlere haber verilir. Bu işlerin tamamı backend'in sorumluluğundadır. Kabaca dört ana görevi vardır:

  • İş kuralları: İndirimin kime uygulanacağı, bir siparişin ne zaman iptal edilebileceği, bir randevunun çakışıp çakışmadığı.
  • Veri: Kayıtların bir veritabanında tutarlı biçimde saklanması ve okunması.
  • Erişim denetimi: Kullanıcının kim olduğunun (kimlik doğrulama) ve neye yetkisi olduğunun kontrolü.
  • Entegrasyonlar: Ödeme altyapısı, kargo, muhasebe ya da CRM gibi dış sistemlerle konuşmak.

Bir siparişin sunucu tarafındaki yolculuğu

Kullanıcı “Siparişi tamamla” dediğinde tipik bir backend'de şu adımlar yaşanır:

  1. Tarayıcıdan gelen HTTP isteği, bir reverse proxy veya yük dengeleyiciden geçerek uygulama sunucusuna ulaşır.
  2. Yönlendirme katmanı isteği ilgili işleyiciye (handler) verir.
  3. Oturum veya token kontrol edilir; kullanıcı tanınmıyorsa istek burada reddedilir.
  4. Gelen veri doğrulanır: adres alanları dolu mu, ürün miktarı makul mü?
  5. Fiyat sunucuda yeniden hesaplanır, stok düşülür ve sipariş tek bir transaction içinde kaydedilir.
  6. Onay e-postası gibi yavaş işler bir iş kuyruğuna bırakılır; kullanıcı bunları beklemez.
  7. Sipariş numarasını içeren bir JSON yanıtı ön yüze döner.

Ön yüzün bu süreçten gördüğü tek şey son adımdaki yanıttır. İki taraf arasındaki bu sözleşmeye API denir.

Tipik bileşenler

BileşenNe işe yarar?Örnekler
Dil ve çalışma ortamıKodun yazıldığı ve çalıştığı ortamNode.js, Python, Go, Java, PHP, C#/.NET
FrameworkYönlendirme, doğrulama, oturum gibi tekrar eden işleri hazır sunarExpress, Django, Laravel, Spring, ASP.NET Core
VeritabanıKalıcı veriyi saklarPostgreSQL, MySQL, MongoDB
ÖnbellekSık okunan veriyi hızlı sunarRedis, Memcached
KuyrukUzun süren işleri istek döngüsünden ayırırRabbitMQ, SQS, Redis tabanlı kuyruklar
Web sunucusu / proxyTLS, sıkıştırma, statik dosyalar ve yönlendirmeNginx, Caddy

Hangi dilin seçildiği, çoğu projede ekibin deneyiminden ve kullanılacak kütüphanelerden daha az belirleyicidir.

Güvenlik sınırı backend'dedir

Tarayıcıda çalışan her şey kullanıcının kontrolündedir: JavaScript değiştirilebilir, form alanları atlanabilir, istekler elle yeniden gönderilebilir. Bu yüzden ön yüzdeki doğrulamalar yalnızca kullanıcı deneyimi içindir; asıl kontrol sunucuda yapılmalıdır. Ürün fiyatını istekten okuyan, “bu kullanıcı bu siparişi görebilir mi?” sorusunu sormadan kayıt döndüren bir backend, ön yüz ne kadar özenli olursa olsun güvenli değildir.

Sık karışan kullanımlar

Backend bir makine değildir. Aynı sunucu hem ön yüz dosyalarını hem backend kodunu çalıştırabilir; backend bir donanımı değil, bir sorumluluk katmanını anlatır.

BFF ve BaaS farklı şeylerdir. “Backend for frontend” (BFF), belirli bir ön yüzün ihtiyaçlarına göre şekillenmiş ince bir sunucu katmanıdır. “Backend as a service” (BaaS) ise kimlik doğrulama, veritabanı ve dosya depolama gibi hazır backend işlevlerini kiralık bir hizmet olarak sunan platformlar için kullanılır.

Her sitenin ayrı bir backend'e ihtiyacı yoktur. İçeriği nadiren değişen bir tanıtım sitesi önceden üretilmiş statik dosyalarla yayınlanabilir; backend ihtiyacı form gönderimi gibi birkaç işle sınırlı kalır.

İlgili terimler

← Sözlüğe dön