Middle
Kako promene koje su napravljene na klijentu stižu na server i čuvaju se u bazi podataka?
sobes.tech АИ
Одговор од АИ
Обично, промене које корисник направи у веб апликацији (на клијентској страни) шаљу се серверу путем HTTP захтева.
Типови HTTP захтева:
- POST: Користи се за креирање новог ресурса или слање података на обраду серверу. Често се користи за податке из формулара.
- PUT: Користи се за ажурирање постојећег ресурса. Преноси се потпун статус ресурса.
- PATCH: Користи се за делимично ажурирање ресурса. Преносе се само измењена поља.
- DELETE: Користи се за брисање ресурса.
Пример тока података:
- Корисник уноси податке у формулар на веб страници.
- JavaScript на страни клијента прикупља ове податке (нпр., у JSON објекат).
- Извршава се HTTP захтев (нпр., POST или PUT) на одређени API ендпоинт сервера. Податци се прикачју на тело захтева.
// Пример слања података на сервер коришћењем fetch API const data = { username: 'newuser', email: 'newuser@example.com' }; fetch('/api/users', { method: 'POST', // или 'PUT', 'PATCH' headers: { 'Content-Type': 'application/json', // Други заглавља, нпр. за ауторизацију }, body: JSON.stringify(data), // Претварање JavaScript објекта у JSON }) .then(response => response.json()) // Парсирање одговора са сервера у JSON .then(data => { console.log('Успех:', data); // Обрада успешног одговора }) .catch((error) => { console.error('Грешка:', error); // Обрада грешке }); - Сервера апликација добија захтев и маршрутизира га до одговарајућег обработача (контролера).
- Контролер извлачи податке из тела захтева.
- Податци пролазе валидацију и санитаризацију на страни сервера ради безбедности и исправности.
- Бизнис логика обрађује примљене податке (нпр., провера јединствености имена корисника, извршава потребне рачунања).
- Контролер комуницира са слојем приступа подацима (Data Access Layer - DAL) или ORM (Object-Relational Mapper).
- DAL/ORM генерише SQL упит или користи методе базе података за чување, ажурирање или брисање података у одговарајућој табели(јама).
-- Пример SQL INSERT INSERT INTO users (username, email) VALUES ('newuser', 'newuser@example.com'); -- Пример SQL UPDATE UPDATE users SET email = 'updated_email@example.com' WHERE username = 'newuser'; - База података извршава операцију и враћа резултат (успех или грешка).
- DAL/ORM преноси резултат контролеру.
- Контролер формира одговор за клијента (нпр., JSON са потврђивањем успеха, HTTP статус код 200 OK, или грешка са статус кодом 400 Bad Request, 500 Internal Server Error итд.).
- Сървер шаље одговор клијенту.
- JavaScript на страни клијента обрађује одговор (нпр., приказује поруку о успешном чувању, ажурира UI или приказује грешку).
Технологије које се користе зависе од конкретног стека:
- Клијент: HTML, CSS, JavaScript (React, Angular, Vue.js итд.)
- Сервер: Frameworks (Node.js/Express, Python/Django/Flask, Ruby/Rails, Java/Spring, PHP/Laravel итд.)
- База података: SQL (PostgreSQL, MySQL, SQL Server), NoSQL (MongoDB, Cassandra)
Цео процес треба да буде безбедан (HTTPS, аутентикација, ауторизација, валидација) и да обрађује могуће грешке на сваком кораку.