Що таке бекенд і як він працює в застосунку?
Автор: Редакція Domeny.ForSale Опубліковано
Коротко: Бекенд — це частина застосунку, що працює на сервері: обробляє запити, застосовує правила роботи сервісу та контролює доступ до даних. Він відповідає, наприклад, за перевірку пароля, збереження замовлення чи надання історії покупок. Користувач зазвичай не бачить його безпосередньо, а користується його функціями через вебсайт або мобільний застосунок.
Бекенд і фронтенд — у чому різниця?
Фронтенд — це частина застосунку, з якою користувач взаємодіє безпосередньо: форми, кнопки, меню та екрани з даними. У вебсервісі він працює переважно в браузері. Бекенд отримує надіслані з браузера запити й визначає, що з ними можна зробити.
У формі входу фронтенд показує поля для адреси електронної пошти та пароля. Бекенд перевіряє облікові дані, а після успішного входу дає змогу розпізнавати користувача під час наступних запитів. Самого показу екрана «Вхід виконано» недостатньо, щоб надати доступ до облікового запису — цей доступ має контролюватися на сервері.
Такий поділ не означає, що в кожному проєкті є два окремі застосунки. Бекенд також може готувати готовий код сторінки, яку потім відображає браузер. В інших рішеннях він передає переважно дані, а фронтенд сам формує з них зображення на екрані.
За що відповідає бекенд?
Найважливіше завдання бекенду — реалізація бізнес-логіки, тобто правил, які визначають роботу сервісу. У магазині ці правила можуть визначати, чи поширюється купон на знижку на певний товар, а в системі бронювання — чи доступні ще вибрані дата й час.
Типові обов’язки бекенду охоплюють:
- Перевірку даних: чи мають надіслані значення правильний формат і чи відповідають вони правилам застосунку.
- Автентифікацію та права доступу: хто цей користувач і яку інформацію він може переглядати або змінювати.
- Читання та запис даних: отримання відомостей про товари, оновлення профілю чи реєстрацію замовлення.
- Інтеграції: обмін даними з платіжним оператором, сервісом надсилання повідомлень або складською системою.
- Фонові завдання: створення звітів або надсилання підтверджень без блокування екрана користувача.
Перевірка на фронтенді може полегшити заповнення форми, але не замінює перевірки даних бекендом. Запит можна надіслати в обхід форми, тому сервер не повинен безумовно довіряти цінам, ідентифікаторам облікових записів чи відомостям про права доступу, отриманим від користувача.
Як працює бекенд на прикладі покупки?
Уявіть, що ви купуєте останній примірник книги в інтернет-магазині. Після натискання «Замовляю» застосунок має не лише змінити вміст екрана, а й виконати низку інших дій.
- Фронтенд надсилає бекенду запит з ідентифікатором товару, кількістю одиниць і потрібними даними замовлення.
- Бекенд перевіряє наявність книги та обчислює суму до сплати на основі достовірних даних про ціни й знижки.
- Зберігає замовлення та належно контролює складські залишки, щоб одночасні покупки не призвели до продажу того самого примірника двом людям.
- Під час типової покупки з оплатою онлайн обмінюється даними з платіжним оператором і передає фронтенду інформацію, потрібну для наступного кроку.
- Після отримання й перевірки підтвердження оплати оновлює статус замовлення.
API, тобто програмний інтерфейс, визначає спосіб такого обміну: які запити можна надсилати та як виглядають відповіді. Один і той самий бекенд може через API обслуговувати як магазин у браузері, так і мобільний застосунок. Проте API — не синонім бекенду, а спосіб надання доступу до його функцій.
Бекенд, сервер і база даних — не одне й те саме
Сервером можуть називати комп’ютер, що надає доступ до ресурсів, або програму, яка відповідає на запити. Бекенд — це частина застосунку, що працює на такій інфраструктурі. Він не обов’язково розміщується на одному фізичному пристрої: може використовувати кілька машин або хмарні сервіси.
База даних — це система для впорядкованого зберігання та читання інформації. Бекенд використовує її, наприклад, для збереження облікового запису клієнта, але сама база не замінює правил, які визначають, хто може редагувати цей запис. Не кожному бекенду потрібна власна база: деякі сервіси обробляють дані в міру їх надходження або отримують їх з інших систем.
Бекенд можна створювати, зокрема, мовами Python, Java, PHP, C# або JavaScripcie, що виконується в середовищі Node.js. Вибір мови сам собою не визначає якість застосунку. Ухвалюючи рішення, варто також враховувати досвід команди, доступні бібліотеки, потрібні інтеграції та витрати на підтримку.
Коли потрібен власний бекенд?
Простий сайт-візитівка з описом послуг і контактними даними може працювати без власного бекенду застосунку. Хостинг і далі передає файли до браузера, але не мусить виконувати окрему логіку для кожного відвідувача. Контактну форму можна обслуговувати через зовнішній сервіс — у такому разі потрібний бекенд забезпечує його постачальник.
Облікові записи користувачів, приватні документи, бронювання чи нестандартні розрахунки зазвичай потребують функцій бекенду. Це не означає, що все доведеться писати з нуля: готова платформа для інтернет-магазину або система керування вмістом уже можуть їх надавати. Власне рішення має сенс насамперед тоді, коли доступні інструменти не дають змоги реалізувати важливі правила проєкту.
Перш ніж замовляти застосунок, запишіть, які дані він має зберігати, хто може їх змінювати та з якими сервісами він має взаємодіяти. Такий список допоможе оцінити, чи достатньо готової платформи, чи потрібно проєктувати власний бекенд.
Дивіться також: Що таке 2FA?
