Sobes.tech
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:

  1. A felhasználó adatokat ír be egy űrlapba egy weboldalon.
  2. A kliens oldali JavaScript összegyűjti ezeket az adatokat (pl. JSON objektumba).
  3. 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
    });
    
  4. A szerver alkalmazás megkapja a kérést, és az adott kezelőhöz (kontrollerhez) irányítja.
  5. A kontroller kinyeri az adatokat a kérés törzséből.
  6. Az adatok validáláson és tisztításon esnek át a szerveren a biztonság és a helyesség érdekében.
  7. 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).
  8. A kontroller kapcsolatba lép az adathozzáférési réteggel (Data Access Layer - DAL) vagy ORM-mel (Object-Relational Mapper).
  9. 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';
    
  10. Az adatbázis végrehajtja a műveletet, és eredményt (siker vagy hiba) ad vissza.
  11. A DAL/ORM átadja az eredményt a kontrollernek.
  12. 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.).
  13. A szerver elküldi a választ az ügyfélnek.
  14. 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.