Front-end ve back-end, web geliştirme ve programlama katmanlarına atıfta bulunan terimlerdir. Türkçeye sırasıyla önyüz ve arkayüz olarak çevrilmektedir. Fakat bazı kaynaklarda ön-uç ve arka-uç olarak da ifade edilmektedir.
Web siteleri ve uygulama oluşturma süreci olarak nitelendirebileceğimiz front-end ve back-end web geliştirme, kodlama ve programlama ile ilgili terimlerdir.
Bir web sitesinin veya web uygulamasının işlevselliği, çeşitli katmanlara dayanır. Bu katmanlar; istemci tarafı olarak da adlandırılan front-end (önyüz) ve sunucu tarafı olarak adlandırılan back-end (arkayüz)’dir.
Bir web sitesinin front-end kısmı, ziyaretçinin doğrudan site ile deneyimlediği şeyleri ifade eder. Kullanıcıların tarayıcılarında gördükleri ve etkileşimde bulundukları her bir fonksiyon front-end ile ilgilidir. Web sayfası düzeni, yazı tipleri, renkler, menüler ve iletişim formları gibi faktörler front-end tarafından yönlendirilir.
Aynı kalan içeriğe sahip bir web sitesine statik web sitesi denir. Bu durumda, sayfada ne olduğunu belirleyen gerekli bilgiler front-end kodunun kendisinde bulunur.
Bu üç dil, kullanıcı bir web sitesini ziyaret ettiğinde, görsel olarak karşılaştığı her bir unsur için kullanılır.
Back-end geliştiricileri, web sitesi ziyaretçileri tarafından görüntülenemeyen işlevlerle uğraşır. Geliştiriciler platformları etkileşimli hale getirir. Örneğin bir e-ticaret sitesinde kullanıcı bilgilerinin doğru ve güvenli bir şekilde saklanması arka-uç veya arka-yüz olarak da bilinen back-end geliştirmeyle ilgilidir.
Back-end geliştiricileri, sunucuda farklı web sayfası bileşenleri oluşturur. Java, PHP, JavaScript, Ruby ve Python programlama dillerini kullanarak sayfalar tasarlar. Aynı zamanda daha hızlı çözüm için diğer geliştiricilere yardımcı olurlar.
Müşterilerinin onunla etkileşime girmesine izin vermek isteyen bir web sitesinde, web sitesi dinamik hale getirilmelidir. Dinamik bir web sitesi, veritabanında depolanan bilgilerle birlikte kullanıcının etkileşimine bağlı olarak değişebilen içeriğe sahiptir.
Örneğin, bir kullanıcı bir alışveriş sitesinde “siyah ceket” araması yapıyor olsun. Front-end kısmında kullanıcının muhatap olduğu bu arama fonksiyonuna cevap olarak; veritabanında depolanan ürünler listelenir. Yani back-end ilgili bilgileri bir veri biçimine dönüştürür, front end dinamik olarak HTML kodu oluşturur ve tarayıcıda görüntülenebilmesini sağlar. Bu durumda, stokta bulunan siyah ceketler, filtrelenmiş olarak kullanıcıya sunulur.
Back-end geliştiricileri, veritabanıyla ilgilenir ve web sitesi içeriğini veritabanı içinde depolar. Back-end geliştiricilerinin bazı görevleri şunlardır:
Başlangıçta JavaScript yalnızca bir front-end dili olarak kullanılabiliyordu, ancak sonradan bir back-end dili olarak da işlev gördü. Sunucu tarafı JavaScript kitaplıkları veya Node.js gibi bileşenleri kullanarak back-end geliştirmeyi yalnızca JavaScript'te kodlamak artık mümkün . Node.js, JavaScript sunucu tarafı ortamıdır.
Back-end geliştirme için Ruby, PHP, Python, Java ve JavaScript gibi sunucu tarafı dilleri kullanılabilir. Budiller, front-end geliştirmeden etkileşimleri alan ve dinamik olarak görüntülenmesi için verileri front-end’e çeviren web sunucusunda çalışır.
Dinamik bir web sitesi hem front-end hem de back-end teknolojilerini kullanır. Front-end diller, web sitenizin harika görünmesini ve etkileşim kurmanın kolay olmasını sağlar. Sahne arkasında yer alan back-end, tüm front-end bileşenlerini bir arada tutar, bilgi ve ürün ayrıntılarını depolamak veya güvenli kullanıcı hesapları oluşturmak gibi ekstra işlevsellik sağlar. Her iki katmanın da çok farklı rolleri vardır, web sitesinin çalışması için her iki geliştirmeye de ihtiyaç duyulur.