Middle
İstemci üzerinde yapılan değişiklikler nasıl sunucuya gider ve veritabanında saklanır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Genellikle, kullanıcı tarafından web uygulamasında (istemci tarafında) yapılan değişiklikler, HTTP isteği yoluyla sunucuya gönderilir.
HTTP istekleri türleri:
- POST: Yeni bir kaynak oluşturmak veya sunucu tarafından işlenmek üzere veri göndermek için kullanılır. Genellikle formlardan gelen veriler için kullanılır.
- PUT: Mevcut bir kaynağı güncellemek için kullanılır. Kaynağın tam durumu iletilir.
- PATCH: Kaynağı kısmi olarak güncellemek için kullanılır. Sadece değiştirilen alanlar iletilir.
- DELETE: Kaynağı silmek için kullanılır.
Veri akışına örnek:
- Kullanıcı, web sayfasındaki bir formda veri girer.
- İstemci tarafındaki JavaScript bu verileri toplar (örneğin, JSON nesnesi olarak).
- Belirli bir API uç noktasına (endpoint) HTTP isteği (örneğin, POST veya PUT) yapılır. Veriler isteğin gövdesine eklenir.
// fetch API kullanarak sunucuya veri gönderme örneği const data = { username: 'newuser', email: 'newuser@example.com' }; fetch('/api/users', { method: 'POST', // veya 'PUT', 'PATCH' headers: { 'Content-Type': 'application/json', // Diğer başlıklar, örneğin yetkilendirme için }, body: JSON.stringify(data), // JavaScript nesnesini JSON dizesine dönüştürür }) .then(response => response.json()) // Sunucudan gelen yanıtı JSON olarak ayrıştırır .then(data => { console.log('Başarılı:', data); // Başarılı yanıtın işlenmesi }) .catch((error) => { console.error('Hata:', error); // Hata işleme }); - Sunucu uygulaması isteği alır, uygun işleyiciye (kontrolcü) yönlendirir.
- Kontrolcü, isteğin gövdesinden verileri çıkarır.
- Veriler, güvenlik ve doğruluk sağlamak için sunucu tarafında doğrulama ve temizleme işlemlerinden geçer.
- İş mantığı, alınan verileri işler (örneğin, kullanıcı adının benzersizliğini kontrol eder, gerekli hesaplamaları yapar).
- Kontrolcü, veri erişim katmanı (Data Access Layer - DAL) veya ORM (Object-Relational Mapper) ile etkileşime geçer.
- DAL/ORM, SQL sorgusu üretir veya veritabanı yöntemlerini kullanarak verileri ilgili tabloya kaydeder, günceller veya siler.
-- SQL INSERT örneği INSERT INTO users (username, email) VALUES ('newuser', 'newuser@example.com'); -- SQL UPDATE örneği UPDATE users SET email = 'updated_email@example.com' WHERE username = 'newuser'; - Veritabanı işlemi gerçekleştirir ve sonucu (başarı veya hata) döner.
- DAL/ORM sonucu kontrolcüye iletir.
- Kontrolcü, istemciye yanıt oluşturur (örneğin, başarı onayı içeren JSON, HTTP durum kodu 200 OK veya hata durumu kodu 400 Bad Request, 500 Internal Server Error vb.).
- Sunucu, yanıtı istemciye gönderir.
- İstemci tarafındaki JavaScript, yanıtı işler (örneğin, başarı mesajı gösterir, UI'yi günceller veya hatayı gösterir).
Kullanılan teknolojiler, belirli yığına bağlıdır:
- İstemci: HTML, CSS, JavaScript (React, Angular, Vue.js vb.)
- Sunucu: Frameworkler (Node.js/Express, Python/Django/Flask, Ruby/Rails, Java/Spring, PHP/Laravel vb.)
- Veritabanı: SQL (PostgreSQL, MySQL, SQL Server), NoSQL (MongoDB, Cassandra)
Tüm süreç, güvenli olmalı (HTTPS, kimlik doğrulama, yetkilendirme, doğrulama) ve her aşamada olası hataları işlemesi gerekir.