Web Uygulaması Nedir? Nasıl Çalışır, Türleri ve Örnekleri
Web uygulaması, tarayıcı üzerinden erişilen ve kullanıcıdan aldığı girdilere göre işlem yapan yazılımdır. E-posta gönderme, alışveriş sepeti oluşturma, belge düzenleme veya banka işlemi gibi etkileşimli görevlerde tarayıcı, sunucu ve çoğu zaman veritabanı birlikte çalışır.
Bu yazıda (8)
- ›Web sitesi ile web uygulaması arasındaki işlev farkı
- ›Tarayıcıdan sunucuya: tek bir isteğin izlediği yol
- ›Frontend, backend ve veritabanı aynı işlemde nasıl birleşir?
- ›Kurulum gerektirmemenin gerçek anlamı ve sınırları
- ›Web, mobil ve masaüstü uygulaması arasında seçim
- ›Web uygulaması geliştirmede kullanılan katmanlar
- ›Çözümlü örnek: web uygulamasında ürün siparişi
- ›Çözümlü örnek: giriş ekranında istemci-sunucu ayrımı
Web Uygulaması Nedir? Nasıl Çalışır, Türleri ve Örnekleri
Bir sayfayı yalnızca okumakla, o sayfada işlem yapmak arasında önemli bir fark vardır. Haber metnini görüntülemek çoğunlukla bilgi sunumudur; ürün seçmek, sepete eklemek, ödeme bilgisi göndermek veya bir belgeyi düzenlemek ise uygulama davranışıdır. Web uygulaması kavramı bu ikinci tür etkileşimli yazılımları anlamak için kullanılır.
Web uygulamaları genellikle Chrome, Firefox, Safari veya benzeri bir tarayıcı aracılığıyla açılır. Kullanıcının cihazına klasik bir masaüstü programı gibi kurulmaları gerekmez; ancak uygulamanın çalışması için internet bağlantısı, önceden yüklenmiş veriler veya çevrimdışı destek gibi koşullar uygulamaya göre değişebilir. Bu nedenle web uygulamasını yalnızca 'internette açılan sayfa' olarak tanımlamak eksik kalır.
Bu rehberde web uygulamasının web sitesinden farkını, tarayıcıdan sunucuya uzanan istek-cevap sürecini, frontend-backend-veritabanı ilişkisini, masaüstü ve mobil uygulamalarla karşılaştırmasını ve gerçek bir alışveriş akışı üzerinden çalışma mantığını inceleyeceğiz.
Web sitesi ile web uygulaması arasındaki işlev farkı
Web sitesi çoğunlukla kullanıcıya bilgi sunar. Bir kurumun iletişim bilgileri, bir haber yazısı veya bir ürün tanıtım sayfası, kullanıcı tarafından okunabilir; fakat kullanıcıdan gelen her girdinin arka planda işlenmesi gerekmeyebilir. Bu tür sayfalarda içerik ağırlıklı yapı baskındır.
Web uygulamasında ise kullanıcı bir işlem başlatır ve sistem bu işlemin sonucunu üretir. E-posta hesabında ileti göndermek, çevrim içi ofis aracında belge düzenlemek, alışveriş sitesinde ürünleri filtrelemek veya bankacılık ekranında para transferi talimatı vermek buna örnektir. Burada yalnızca metin görüntülenmez; kullanıcı verisi alınır, kurallara göre işlenir ve çoğu durumda yeni bir sonuç oluşturulur.
Bu ayrım mutlak bir sınıra dayanmaz. Bir web sitesi arama kutusu, üyelik formu veya yorum sistemi içeriyorsa uygulama özelliklerine sahip olabilir. Benzer şekilde bir web uygulamasında bilgilendirici, statik sayfalar da bulunabilir. Karar verirken şu soruya bakılabilir: Kullanıcı yalnızca içeriği mi görüntülüyor, yoksa sistem kullanıcı girdisini işleyip kişiye veya oturuma özel bir sonuç mu üretiyor? İkinci durumda web uygulaması niteliği belirginleşir.
Tarayıcıdan sunucuya: tek bir isteğin izlediği yol
Bir web uygulamasındaki etkileşim çoğunlukla istemci-sunucu modeliyle açıklanır. İstemci, kullanıcının cihazı ve üzerinde çalışan tarayıcıdır. Sunucu ise uygulamanın işlem mantığının ve gerekli verilerin bulunduğu bilgisayar veya sunucu altyapısıdır.
Örneğin kullanıcı giriş formunu doldurup 'Giriş yap' düğmesine bastığında süreç kabaca şu sırayı izler:
- Tarayıcı, girilen bilgileri uygulamanın sunucusuna bir istek olarak gönderir.
- Sunucu isteğin hangi işlem için geldiğini belirler ve gerekli kontrolleri yapar.
- Kullanıcı hesabı gibi bilgiler gerekiyorsa sunucu veritabanına başvurabilir.
- Sunucu olumlu veya olumsuz sonucu tarayıcıya gönderir.
- Tarayıcı gelen sonuca göre hata mesajı, kullanıcı paneli veya başka bir ekran gösterir.
Bu akışın her adımı her uygulamada aynı biçimde gerçekleşmez. Bazı işlemler tarayıcıda tamamlanabilir, bazıları için sunucuyla yeniden iletişim kurulabilir. İnternet bağlantısının kesilmesi de sunucuyla iletişim gerektiren işlemleri etkileyebilir. Dolayısıyla 'tarayıcıda çalışır' ifadesi, tüm işlemlerin yalnızca cihaz üzerinde yapıldığı anlamına gelmez.
Frontend, backend ve veritabanı aynı işlemde nasıl birleşir?
Frontend, kullanıcının gördüğü ve etkileşim kurduğu bölümdür. Menü, düğme, form, ürün kartı ve ekranda gösterilen sonuçlar frontend kapsamındadır. Tarayıcıda çalışan bu katman, kullanıcının seçimini alır ve gerekli olduğunda sunucuya iletir. Frontend konusu için Frontend Nedir? bağlantısına bakılabilir.
Backend, uygulamanın sunucu tarafındaki işlem mantığıdır. Yetki kontrolü, sipariş kurallarının uygulanması, hesaplama yapılması veya gelen verinin işlenmesi gibi görevler burada yürütülebilir. Backend, frontend'in gösterdiği ekranın arkasında çalışan bütün mekanizma değildir; uygulamanın sunucuda gerçekleştirilen işlevlerini ifade eder. Ayrıntılı ayrım için Backend Nedir? ve Frontend ile Backend Arasındaki Fark içerikleri ilişkilidir.
Veritabanı ise uygulamanın ihtiyaç duyduğu verilerin saklandığı sistemdir. Kullanıcı hesabı, ürün bilgisi, sipariş kaydı veya belge içeriği gibi veriler uygulamanın yapısına göre burada tutulabilir. Ancak veritabanı tek başına web uygulaması değildir; backend ile birlikte kullanıldığında uygulamanın kalıcı veri saklama ihtiyacını karşılar. Bu ayrım Veritabanı Nedir? başlığında ele alınır.
Örneğin ürün sayfasında görülen fiyat frontend tarafından ekrana taşınır; fiyatın hangi ürüne ait olduğu ve siparişe uygulanacak kurallar ise backend ve veritabanı tarafında işlenebilir. Bu nedenle ekranda görülen bir değer ile o değerin güvenilir biçimde hesaplanması aynı katmanın görevi değildir.
Kurulum gerektirmemenin gerçek anlamı ve sınırları
Web uygulamalarının önemli özelliği, ana yazılımın çoğunlukla sunucu tarafında bulunmasıdır. Kullanıcı tarayıcıda uygulamanın adresini açarak hizmete erişir; klasik masaüstü programlarında olduğu gibi uygulamanın tamamını cihazına kurması gerekmeyebilir. Bu durum özellikle farklı cihazlardan aynı hizmete ulaşmayı kolaylaştırır.
Bununla birlikte 'hiçbir şey indirilmez' ifadesi teknik olarak fazla geneldir. Tarayıcı, uygulamayı görüntülemek ve çalıştırmak için sayfa dosyalarını, görsel içerikleri veya betikleri geçici olarak cihaza alabilir. Kullanıcı açısından önemli fark, bunların ayrı bir kurulum paketi olarak elle yüklenmesinin çoğu durumda gerekmemesidir.
Güncellemelerin sunucu tarafında yapılabilmesi de yönetim avantajı sağlar. Geliştirici yeni sürümü hizmetin sunulduğu ortamda yayımladığında kullanıcıların ayrı bir kurulum dosyası indirip çalıştırması gerekmeyebilir. Fakat tarayıcı uyumluluğu, eski önbellek verileri, bağlantı kalitesi ve cihazın performansı deneyimi etkileyebilir. Bu yüzden web uygulaması platform bağımsızlığı sunabilir; ancak her tarayıcıda ve her cihazda tamamen aynı davranacağı garanti edilmez.
Web, mobil ve masaüstü uygulaması arasında seçim
Web uygulaması tarayıcı üzerinden erişim kolaylığı sağlar. Kullanıcı, desteklenen bir tarayıcı bulunan farklı cihazlardan aynı hizmete ulaşabilir ve uygulamayı ayrıca kurmayabilir. Bu yapı, geniş bir kullanıcı grubuna hızlı erişim sunmak isteyen hizmetler için uygun olabilir.
Mobil uygulama ise telefon veya tablet işletim sistemi için hazırlanır ve genellikle cihazın uygulama mağazasından yüklenir. Mobil uygulamalar, uygulamanın tasarımına ve işletim sistemi izinlerine bağlı olarak bildirim, kamera, konum veya başka cihaz özellikleriyle daha doğrudan bütünleşebilir. Buna karşılık indirme, güncelleme ve işletim sistemi uyumluluğu gibi ek süreçler ortaya çıkabilir. Ayrıntılı karşılaştırma için Mobil Uygulama Nedir? içeriğine gidilebilir.
Masaüstü uygulaması, belirli bir işletim sistemi için cihaza kurulup yerel olarak çalışabilir. Bu model, cihaz kaynaklarına erişim veya çevrim dışı çalışma açısından avantaj sağlayabilir; fakat kurulum ve sürüm yönetimi kullanıcıya daha fazla sorumluluk yükleyebilir. Masaüstü Uygulama Nedir? konuyu tamamlar.
Seçim tek bir üstünlük kuralıyla yapılmaz. Kullanıcının çevrim dışı çalışma ihtiyacı, cihaz donanımına erişim gereksinimi, hedef platformlar, güncelleme yöntemi ve bağlantı koşulları birlikte değerlendirilmelidir. Aynı hizmetin web, mobil ve masaüstü sürümlerini bir arada sunması da mümkündür.
Web uygulaması geliştirmede kullanılan katmanlar
Bir web uygulaması genellikle tek bir programlama dilinden oluşmaz. Kullanıcının gördüğü arayüz için HTML, CSS ve JavaScript gibi web teknolojileri kullanılabilir. HTML içerik yapısını, CSS görünümü, JavaScript ise sayfadaki etkileşimleri ve tarayıcı tarafındaki davranışları düzenlemede rol oynar.
Sunucu tarafında Python, Java, PHP veya Node.js gibi farklı teknolojiler tercih edilebilir. Hangi teknolojinin seçileceği; uygulamanın ihtiyaçlarına, ekibin deneyimine ve mevcut altyapıya bağlıdır. Python ile JavaScript Arasındaki Fark bağlantısı, bu iki dilin kullanım bağlamlarını ayırmaya yardımcı olur.
Veri saklamak için kullanılan veritabanı da mimarinin ayrı bir parçasıdır. Kullanıcı işlemleri, ürün kayıtları veya belgeler gibi kalıcı veriler burada tutulabilir. Ayrıca kimlik doğrulama, yetkilendirme ve veri aktarımının korunması gibi güvenlik konuları tasarımın parçasıdır. Bir uygulamanın tarayıcıda açılması tek başına güvenli olduğu anlamına gelmez; güvenlik, kullanılan yöntemlere ve uygulamanın nasıl yönetildiğine bağlıdır.
Bu yapı, uygulamanın neden yalnızca bir ekran tasarımından ibaret olmadığını gösterir. Kullanıcının gördüğü düğme frontend'de bulunabilir; düğmeye basınca gerçekleşen yetki kontrolü backend'de yapılabilir; işlem sonucunun saklanması ise veritabanına bağlı olabilir.
Çözümlü örnek: web uygulamasında ürün siparişi
Verilenler: Kullanıcı bir tarayıcıda alışveriş web uygulamasını açıyor. Bir ürünü inceliyor, sepete ekliyor ve sipariş oluşturmayı deniyor. Ürün bilgileri uygulamanın verilerinde kayıtlı; sipariş işlemi için kullanıcının seçimi sunucuya aktarılıyor.
Çözüm adımları:
- Ürün listesinin açılması: Tarayıcı uygulamanın ilgili adresine gider ve ürünleri görüntülemek için gerekli içeriği ister. Ekrandaki ürün kartları frontend tarafından gösterilir.
- Ürün seçiminin yapılması: Kullanıcı 'Sepete ekle' düğmesine basar. Bu etkileşim tarayıcı tarafında yakalanır. Sepet bilgisi yalnızca tarayıcıda tutuluyorsa işlem yerel olabilir; kullanıcı hesabıyla ilişkilendirilecekse sunucuya gönderilmesi gerekebilir.
- Ürün ve stok kontrolü: Sunucu, ürünün geçerli olup olmadığını ve sipariş kuralına göre işlenip işlenemeyeceğini denetleyebilir. Ürün bilgilerinin veya stok durumunun veritabanından okunması mümkündür.
- Sipariş talebinin gönderilmesi: Kullanıcı sipariş verme adımını seçtiğinde tarayıcı, seçilen ürün ve diğer gerekli bilgileri sunucuya iletir.
- Sonucun üretilmesi: Backend, gelen isteği işler. Uygulamanın kurallarına uygun bir sonuç oluşursa sipariş kaydı veritabanına yazılabilir; uygun değilse kullanıcıya hata veya düzeltme mesajı dönebilir.
- Ekranın güncellenmesi: Tarayıcı sunucudan gelen sonucu işler ve sipariş onayı, hata mesajı veya ödeme adımı gibi yeni ekranı gösterir.
Sonuç: Kullanıcının gördüğü ürün kartı ve düğme frontend'e; isteğin işlenmesi backend'e; ürün ve sipariş kayıtlarının kalıcı biçimde saklanması veritabanına aittir. Bu üç parçayı birbirine karıştırmamak, web uygulamasının çalışma mantığını anlamanın anahtarıdır.
Çözümlü örnek: giriş ekranında istemci-sunucu ayrımı
Verilenler: Kullanıcı e-posta ve parola alanlarını dolduruyor, ardından giriş düğmesine basıyor. Uygulama başarılı girişte kullanıcı panelini, başarısız girişte hata mesajını gösterecek şekilde tasarlanmış.
Çözüm adımları:
- Formun oluşturulması: E-posta ve parola kutuları ile giriş düğmesi frontend tarafından sunulur. Kullanıcı bilgileri bu arayüzden girer.
- İlk kontrol: Frontend, alanların boş bırakılıp bırakılmadığını kontrol edebilir. Bu kontrol kullanıcıya hızlı geri bildirim verir; ancak tek başına yeterli güvenlik kontrolü sayılmaz.
- Sunucu isteği: Giriş bilgileri, uygulamanın backend katmanına gönderilir. Sunucu gelen isteğin biçimini ve yetkili işlem olup olmadığını denetler.
- Kayıtla karşılaştırma: Backend, gerekli kullanıcı kaydını veritabanında arayabilir ve uygulamanın kimlik doğrulama sürecini yürütür. Bu adımın ayrıntıları kullanılan sisteme göre değişir.
- Yanıt: Bilgiler kabul edilirse sunucu başarılı sonuç ve kullanıcı oturumunun devamı için gerekli yanıtı döndürebilir. Uygun bulunmazsa hata sonucu gönderilebilir.
- Görsel geri bildirim: Frontend, gelen yanıta göre paneli açar veya hata mesajı gösterir.
Sonuç: Formun ekranda bulunması hesabın doğrulandığı anlamına gelmez. Kullanıcı deneyimi için frontend kontrolü yapılabilir; asıl kararın güvenilir biçimde sunucu tarafında verilmesi gerekir. Bu, frontend ile backend görevlerinin neden ayrıldığını gösteren tipik bir örnektir.
Web uygulamasının istemci-sunucu akışı bir hesaplama formülü değildir. Öğretici bir gösterim olarak şu zincir kullanılabilir: kullanıcı girdisi → tarayıcı/istemci → sunucu/backend → gerekirse veritabanı → yanıt → tarayıcı arayüzü. Bu sıra her uygulamada aynı teknik ayrıntıyla uygulanmaz; özellikle bazı işlemler istemci tarafında tamamlanabilir.
Bir öğrenci çevrim içi yemek uygulamasında akşam yemeği seçerken restoranı filtreler, bir yemeği sepete ekler ve adresini kaydeder. Filtre ve sepet ekranı frontend'de görünür; restoran ve ürün bilgileri sunucudan alınabilir; adres ve sipariş kaydı backend üzerinden veritabanına yazılabilir. Öğrencinin aynı hesabı başka bir cihazda açtığında siparişlerini görebilmesi, verilerin yalnızca ilk cihazın ekranında değil, hizmetin veri altyapısında saklandığını gösterir.
TYT veya AYT'de bilişim kavramlarıyla ilgili bir soruda 'kullanıcının gördüğü arayüz' ifadesi frontend'i, 'sunucuda çalışan işlem mantığı' ifadesi backend'i, 'kalıcı verilerin saklandığı yapı' ifadesi veritabanını işaret eder. Tarayıcı üzerinden erişilmesi web uygulamasının ayırt edici özelliğidir; fakat tarayıcıda açılan her içerik, kullanıcı girdisini işleyen bir web uygulaması değildir. Web, mobil ve masaüstü ayrımında erişim biçimi, kurulum gereksinimi ve cihaz özelliklerine erişim birlikte değerlendirilmelidir.
Sık sorulan sorular
Web uygulaması kullanmak için internet bağlantısı şart mıdır?
Sunucudan veri alma veya sunucuya işlem gönderme gerektiren çoğu kullanımda bağlantı gerekir. Ancak bazı web uygulamaları önceden yüklenen içeriklerle sınırlı çevrim dışı işlevler sunabilir. Bu yüzden 'her web uygulaması her işlev için sürekli internet ister' genellemesi yapılmamalıdır.
Web sitesi ve web uygulaması arasındaki en kısa fark nedir?
Web sitesi ağırlıklı olarak bilgi sunar; web uygulaması kullanıcı girdisini işleyip bir hizmet veya sonuç üretir. Sınır kesin değildir: Bir web sitesinde uygulama özellikleri, bir web uygulamasında da bilgilendirici sayfalar bulunabilir.
Web uygulaması telefona kurulabilir mi?
Bazı web uygulamaları yalnızca tarayıcıdan açılırken bazıları cihazın ana ekranına eklenebilir veya uygulama benzeri özellikler sunabilir. Bu durum uygulamanın teknik yapısına ve işletim sistemi desteğine bağlıdır; her web uygulaması yerel mobil uygulamayla aynı değildir.
Frontend tek başına web uygulamasının tamamı mıdır?
Hayır. Frontend kullanıcının gördüğü arayüz ve tarayıcı tarafındaki etkileşimleri kapsar. Sunucu tarafında işlem yapan backend ve kalıcı verileri tutan veritabanı da uygulamanın ihtiyaçlarına göre sisteme dahil olabilir.
Web uygulamaları güvenli midir?
Güvenlik, uygulamanın geliştirilme ve işletilme biçimine bağlıdır. Kimlik doğrulama, yetkilendirme, veri aktarımının korunması ve düzenli güvenlik bakımı gibi önlemler önemlidir. Tarayıcıda açılıyor olması tek başına güvenlik garantisi değildir.
Web uygulaması ile mobil uygulama arasında hangisi daha iyidir?
Tek bir doğru seçenek yoktur. Tarayıcıdan hızlı erişim ve farklı cihazlarda kullanım öncelikliyse web uygulaması uygun olabilir. Bildirim, kamera veya cihaz donanımıyla daha doğrudan bütünleşme ve çevrim dışı kullanım önemliyse mobil uygulama tercih edilebilir.
- •Web Uygulaması Nedir? - Web Uygulamasına Ayrıntılı Bakışaws.amazon.com
- •Web Uygulaması Nedir? - Web Uygulamalarının Geleceğiverimix.com.tr
- •Web Application Nedir?niobehosting.com