Middle
Kaip pakeitimai, atlikti kliento pusėje, perduodami į serverį ir saugomi duomenų bazėje?
sobes.tech AI
Atsakymas iš AI
Paprastai vartotojo atlikti pakeitimai interneto programėlėje (kliento pusėje) siunčiami į serverį per HTTP užklausą.
HTTP užklausų tipai:
- POST: naudojamas naujo ištekliaus kūrimui arba duomenų siuntimui apdorojimui serveriu. Dažnai naudojamas formų duomenims.
- PUT: naudojamas esamo ištekliaus atnaujinimui. Perduodama visa ištekliaus būsena.
- PATCH: naudojamas daliniam ištekliaus atnaujinimui. Perduodami tik pakeisti laukai.
- DELETE: naudojamas ištekliaus ištrynimui.
Duomenų srauto pavyzdys:
- Vartotojas įveda duomenis interneto puslapio formoje.
- Kliento pusėje JavaScript surenka šiuos duomenis (pavyzdžiui, JSON objektą).
- Vykdoma HTTP užklausa (pvz., POST arba PUT) į serverio API galinį tašką. Duomenys pridedami prie užklausos kūno.
// Duomenų siuntimo į serverį pavyzdys naudojant fetch API const data = { username: 'newuser', email: 'newuser@example.com' }; fetch('/api/users', { method: 'POST', // arba 'PUT', 'PATCH' headers: { 'Content-Type': 'application/json', // kiti antraštės gali būti, pvz., autorizacijai }, body: JSON.stringify(data), // JavaScript objekto konvertavimas į JSON eilutę }) .then(response => response.json()) // atsakymo iš serverio analizė į JSON .then(data => { console.log('Sėkmė:', data); // Sėkmingo atsakymo apdorojimas }) .catch((error) => { console.error('Klaida:', error); // Klaidos apdorojimas }); - Serverio programa gauna užklausą, nukreipia ją į atitinkamą apdorotoją (kontrolerį).
- Kontroleris ištraukia duomenis iš užklausos kūno.
- Duomenys patikrinami ir sanitarizuojami serverio pusėje, siekiant užtikrinti saugumą ir teisingumą.
- Verslo logika apdoroja gautus duomenis (pvz., tikrina vartotojo vardo unikalumą, atlieka reikalingus skaičiavimus).
- Kontroleris sąveikauja su duomenų prieigos sluoksniu (Data Access Layer - DAL) arba ORM (Object-Relational Mapper).
- DAL/ORM generuoja SQL užklausą arba naudoja duomenų bazės metodus duomenų išsaugojimui, atnaujinimui ar ištrynimui atitinkamoje lentelėje(-ėse).
-- SQL INSERT pavyzdys INSERT INTO users (username, email) VALUES ('newuser', 'newuser@example.com'); -- SQL UPDATE pavyzdys UPDATE users SET email = 'updated_email@example.com' WHERE username = 'newuser'; - Duomenų bazė vykdo operaciją ir grąžina rezultatą (sėkmę arba klaidą).
- DAL/ORM perduoda rezultatą kontroleriui.
- Kontroleris sukuria atsakymą klientui (pvz., JSON su patvirtinimu apie sėkmę, HTTP statuso kodu 200 OK arba klaida su statuso kodu 400 Bad Request, 500 Internal Server Error ir kt.).
- Serveris siunčia atsakymą klientui.
- JavaScript kliento pusėje apdorojamas atsakymas (pvz., rodomas sėkmingo išsaugojimo pranešimas, atnaujinama vartotojo sąsaja arba rodomas klaidos pranešimas).
Naudojamos technologijos priklauso nuo konkretaus technologijų rinkinio:
- Klientas: HTML, CSS, JavaScript (React, Angular, Vue.js ir kt.)
- Serveris: Frameworks (Node.js/Express, Python/Django/Flask, Ruby/Rails, Java/Spring, PHP/Laravel ir kt.)
- Duomenų bazė: SQL (PostgreSQL, MySQL, SQL Server), NoSQL (MongoDB, Cassandra)
Visa procesas turi būti saugus (HTTPS, autentifikacija, autorizacija, validacija) ir turi apdoroti galimas klaidas kiekviename etape.