Middle
Hogyan jutnak el a kliensen végrehajtott változtatások a szerverhez, és kerülnek mentésre az adatbázisban?
sobes.tech MI
Válasz az MI-től
Általában a felhasználó által a webalkalmazásban végrehajtott változtatások (az ügyfél oldalon) HTTP-kéréssel kerülnek a szerverhez.
HTTP-kérések típusai:
- POST: Új erőforrás létrehozására vagy adatok küldésére szolgál a szerver által történő feldolgozáshoz. Gyakran űrlapadatokhoz használják.
- PUT: Egy meglévő erőforrás frissítésére szolgál. A teljes erőforrásállapotot küldi.
- PATCH: Az erőforrás részleges frissítésére szolgál. Csak a módosított mezőket küldi.
- DELETE: Erőforrás törlésére szolgál.
Adatfolyam példája:
- A felhasználó adatokat ír be egy űrlapba egy weboldalon.
- A kliens oldali JavaScript összegyűjti ezeket az adatokat (pl. JSON objektumba).
- Egy HTTP-kérés (pl. POST vagy PUT) történik egy adott API végponton a szerveren. Az adatok a kérés törzsében kerülnek elküldésre.
// Adatok küldése szerverre fetch API használatával const data = { username: 'newuser', email: 'newuser@example.com' }; fetch('/api/users', { method: 'POST', // vagy 'PUT', 'PATCH' headers: { 'Content-Type': 'application/json', // Egyéb fejléc, pl. hitelesítés }, body: JSON.stringify(data), // JavaScript objektum JSON-re alakítása }) .then(response => response.json()) // A szerver válaszának JSON-ként történő értelmezése .then(data => { console.log('Siker:', data); // Sikeres válasz kezelése }) .catch((error) => { console.error('Hiba:', error); // Hiba kezelése }); - A szerver alkalmazás megkapja a kérést, és az adott kezelőhöz (kontrollerhez) irányítja.
- A kontroller kinyeri az adatokat a kérés törzséből.
- Az adatok validáláson és tisztításon esnek át a szerveren a biztonság és a helyesség érdekében.
- Az üzleti logika feldolgozza a kapott adatokat (pl. ellenőrzi a felhasználónév egyediségét, elvégzi a szükséges számításokat).
- A kontroller kapcsolatba lép az adathozzáférési réteggel (Data Access Layer - DAL) vagy ORM-mel (Object-Relational Mapper).
- A DAL/ORM SQL-lekérdezést generál vagy adatbázis módszereket használ az adatok mentésére, frissítésére vagy törlésére.
-- SQL beszúrás példája INSERT INTO users (username, email) VALUES ('newuser', 'newuser@example.com'); -- SQL frissítés példája UPDATE users SET email = 'updated_email@example.com' WHERE username = 'newuser'; - Az adatbázis végrehajtja a műveletet, és eredményt (siker vagy hiba) ad vissza.
- A DAL/ORM átadja az eredményt a kontrollernek.
- A kontroller válaszokat állít össze az ügyfél számára (pl. JSON siker megerősítéssel, HTTP státuszkód 200 OK, vagy hiba státuszkóddal 400 Bad Request, 500 Internal Server Error stb.).
- A szerver elküldi a választ az ügyfélnek.
- A kliens oldali JavaScript feldolgozza a választ (pl. sikeres mentés üzenet megjelenítése, UI frissítése vagy hibaüzenet megjelenítése).
A használt technológiák a konkrét technológiai stack-től függenek:
- Ügyfél: HTML, CSS, JavaScript (React, Angular, Vue.js stb.)
- Szerver: Frameworkök (Node.js/Express, Python/Django/Flask, Ruby/Rails, Java/Spring, PHP/Laravel stb.)
- Adatbázis: SQL (PostgreSQL, MySQL, SQL Server), NoSQL (MongoDB, Cassandra)
Az egész folyamatnak biztonságosnak kell lennie (HTTPS, hitelesítés, jogosultság, validálás), és minden lépésnél kezelni kell a lehetséges hibákat.