Sobes.tech
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: Користи се за брисање ресурса.

Пример тока података:

  1. Корисник уноси податке у формулар на веб страници.
  2. JavaScript на страни клијента прикупља ове податке (нпр., у JSON објекат).
  3. Извршава се 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);
      // Обрада грешке
    });
    
  4. Сервера апликација добија захтев и маршрутизира га до одговарајућег обработача (контролера).
  5. Контролер извлачи податке из тела захтева.
  6. Податци пролазе валидацију и санитаризацију на страни сервера ради безбедности и исправности.
  7. Бизнис логика обрађује примљене податке (нпр., провера јединствености имена корисника, извршава потребне рачунања).
  8. Контролер комуницира са слојем приступа подацима (Data Access Layer - DAL) или ORM (Object-Relational Mapper).
  9. 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';
    
  10. База података извршава операцију и враћа резултат (успех или грешка).
  11. DAL/ORM преноси резултат контролеру.
  12. Контролер формира одговор за клијента (нпр., JSON са потврђивањем успеха, HTTP статус код 200 OK, или грешка са статус кодом 400 Bad Request, 500 Internal Server Error итд.).
  13. Сървер шаље одговор клијенту.
  14. 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, аутентикација, ауторизација, валидација) и да обрађује могуће грешке на сваком кораку.