Посібники

Фронтенд і бекенд: у чому різниця?

Фронтенд — це частина застосунку, що працює в браузері користувача: сторінки, кнопки, форми й анімації, які він бачить і на які натискає. Бекенд — це частина, що працює на сервері, якого користувач ніколи не бачить: він зберігає й отримує дані, застосовує бізнес-правила, перевіряє, хто що може робити, і взаємодіє з іншими сервісами, наприклад з оплатами та електронною поштою. Ці дві частини спілкуються через API, і разом із базою даних вони утворюють «full-stack» застосунок.

Чому це важливо, коли ви створюєте з ШІ

Коли ви описуєте застосунок ШІ-конструктору, ви описуєте обидві частини одразу, навіть якщо не помічаєте цього. «Клієнти можуть забронювати місце» означає форму бронювання (фронтенд), правила про те, які місця вільні (бекенд), і сховище, де зберігаються бронювання (база даних).

Розуміння цього поділу допомагає на практиці в трьох випадках:

  1. Безпека. Усе, що є у фронтенді, може побачити й змінити користувач. Правила та секрети мають жити в бекенді.
  2. Налагодження. «Кнопка не реагує» і «кнопка реагує, але нічого не зберігається» вказують на різні частини системи. Якщо ви скажете, що саме бачите, ШІ швидше знайде причину.
  3. Хостинг і вартість. Фронтенд-сайт дешевий і простий у розміщенні. Бекенд має де працювати, і це впливає на те, скільки ви платите і як застосунок поводиться в простої.

Повсякденна аналогія

Уявіть ресторан.

Фронтенд — це зал: меню, столики, інтер'єр, офіціант, який приймає замовлення. Він створений для гостей, і вони бачать та торкаються всього цього.

Бекенд — це кухня й офіс: кухарі, склад, каса, правила менеджера щодо знижок. Гості туди не заходять і не повинні мати такої можливості.

API — це передача між ними: стійка, куди подаються замовлення і звідки виходять страви, у погодженому форматі. База даних — це склад і книга замовлень.

Гість може переписати свою замовлену картку (фронтенд під його контролем), але кухня все одно вирішує, що приготувати і скільки це коштує. Тому важливі перевірки мають бути в бекенді.

Що робить кожна частина

ФронтендБекенд
Де працюєНа пристрої користувача, у браузеріНа сервері, яким керуєте ви (або ваш хостинг)
Основне завданняПоказувати, збирати введені дані, реагувати на клікиЗберігати дані, застосовувати правила, керувати доступом, викликати інші сервіси
Чи можуть користувачі бачити і змінювати код?Так — його завантажують у браузерНі
Чи може зберігати секретні ключі API?НіТак, у змінних середовища
Поширені технологіїHTML, CSS, JavaScript/TypeScript, React, Vue, Svelte, TailwindNode.js, Python (FastAPI, Django), C#, Java, Go, Ruby
Що зазвичай ламаєтьсяВерстка з'їжджає на телефоні, кнопка нічого не робить, сторінка повільнаДані не зберігаються, показуються неправильні дані, помилки, діри в безпеці

Деякі фреймворки стирають цю межу. Наприклад, Next.js дозволяє мати в одному проєкті і код для браузера, і код для сервера. Ідея та сама: завжди питання в тому, де виконується ця частина?

Практичний приклад: бронювання заняття

Ось що відбувається, коли хтось бронює заняття йогою, крок за кроком.

КрокДеЩо відбувається
1ФронтендСторінка розкладу завантажується і запитує в бекенду заняття на цей тиждень.
2БекендЗчитує заняття та бронювання з бази даних, рахує вільні місця і повертає список у форматі JSON.
3ФронтендПоказує кожне заняття з часом, викладачем і кількістю вільних місць.
4ФронтендКористувач обирає заняття і вводить ім'я та email. Форма перевіряє, що email виглядає коректно (це для зручності, а не гарантія).
5Фронтенд → БекендНадсилає запит POST /api/bookings через API.
6БекендПовторно перевіряє дані, з'ясовує, чи заняття не заповнене, зберігає бронювання і, використовуючи секретний ключ, просить сервіс електронної пошти надіслати підтвердження.
7Бекенд → ФронтендПовертає «заброньовано» або «вибачте, місць немає».
8ФронтендПоказує екран підтвердження.

Зверніть увагу на кроки 4 і 6: дані перевіряються двічі. Перевірка у фронтенді дає миттєвий відгук; а справжню роль відіграє перевірка в бекенді, бо наполегливий користувач може обійти фронтенд повністю.

Поширені терміни

ТермінЗначення
Клієнт / серверКлієнт — браузер (або застосунок), що надсилає запити; сервер на них відповідає.
UIІнтерфейс користувача — екрани й елементи керування.
APIПогоджений спосіб, яким фронтенд запитує в бекенду дані або дії.
EndpointОдна конкретна адреса в API, наприклад /api/bookings.
Full stackФронтенд, бекенд і база даних разом. Див. що таке full-stack застосунок.
Статичний сайтФронтенд без власного бекенду; однакові файли для всіх.
SPAОдносторінковий застосунок: фронтенд оновлює сторінку в браузері замість завантаження нових.
Рендеринг на сервері (SSR)Сервер формує HTML сторінки перед відправкою, що може пришвидшити завантаження і допомогти SEO.
Змінні середовищаНалаштування та секрети, які бекенд отримує під час роботи і які зберігаються поза кодом.

Чи потрібен вашому застосунку бекенд?

Якщо ваш застосунок…Чи потрібен бекенд?
Показує інформацію, однакову для всіхНі
Має контактну форму, яка лише надсилає вам emailЗазвичай невеликий, або сервіс форм
Зберігає дані, які бачитимуть інші людиТак
Має входи в акаунт і приватні даніТак
Приймає оплатиТак — принаймні для створення платежів і прийому вебхуків оплати
Використовує платний ШІ або інший API з секретним ключемТак, щоб ключ не потрапив у браузер

Поширені помилки й хибні уявлення

  • Зберігати секретні ключі у фронтенді. Їх побачить кожен, хто відкриє інструменти розробника в браузері. Це найпоширеніша серйозна помилка в застосунках, створених з ШІ.
  • Застосовувати правила лише у фронтенді. Приховати кнопку «видалити» для не-адміністраторів — це не захист; бекенд має відхиляти такий запит.
  • Вважати, що бекенд — це «просто база даних». База зберігає дані. Бекенд вирішує, хто може їх читати й змінювати і як.
  • Думати, що JavaScript означає фронтенд. JavaScript і TypeScript працюють і на серверах, через Node.js.
  • Шукати проблему не там. Якщо сторінка виглядає правильно, а дані неправильні, проблема зазвичай у бекенді чи базі, а не в дизайні.
  • Надмірне ускладнення. Портфоліо не потребує власного бекенду. Він додає вартості та рухомих частин.

Про що просити ваш ШІ-конструктор

  • «Які частини цього застосунку працюють у браузері, а які на сервері?»
  • «Перенеси всі ключі API в бекенд і читай їх зі змінних середовища.»
  • «Перевіряй кожну форму і на сервері, і в браузері.»
  • «Зроби так, щоб на бекенді видаляти бронювання могли лише адміністратори.»
  • «Сторінка виглядає добре, але дані не зберігаються. Перевір логи бекенду для цього запиту.»
  • «Це простий маркетинговий сайт; залишай лише фронтенд, якщо бекенд не потрібен.»

Фронтенд і бекенд у Mythex

Новий проєкт у Mythex починається з фронтенду на Vite, React, TypeScript і Tailwind. Агент додає бекенд, коли застосунок його потребує, або ви можете попросити окремий API на Node, Python (FastAPI), C# чи Java, що працює поруч із фронтендом у тому самому проєкті. У попередньому перегляді можна перемикатися між сайтом і API-сервером, а публікація розгортає обидві частини, з базою даних і сховищем файлів за потреби. У документації описано застосунки з кількох сервісів, у гайді про веб-хостинг — де працює кожна частина після запуску, а шаблони застосунків — швидкий спосіб побачити приклади full-stack.

Запитання

У чому різниця між фронтендом і бекендом?

Фронтенд — це частина застосунку, яка працює в браузері користувача: сторінки, кнопки й форми, які він бачить. Бекенд працює на сервері, якого користувач не бачить; він зберігає дані, застосовує бізнес-правила, перевіряє дозволи і взаємодіє з іншими сервісами.

Чи потрібен бекенд кожному застосунку?

Ні. Маркетинговому сайту, портфоліо чи простій лендинг-сторінці може вистачити лише фронтенду. Щойно застосунку потрібно зберігати спільні дані, входити в акаунти, приймати оплати або використовувати секретні ключі API, йому потрібен якийсь бекенд.

HTML — це фронтенд чи бекенд?

HTML, CSS і JavaScript, що виконуються в браузері, — це фронтенд. JavaScript також може працювати на сервері через Node.js, і тоді це бекенд-код. Вирішує не мова, а те, де виконується код.

Що означає full stack?

Full stack означає охоплення і фронтенду, і бекенду (а зазвичай і бази даних). Full-stack застосунок має всі три частини, а full-stack розробник працює з кожною з них.

Mythex · Pricing · Створюйте що завгодно з ШІ · Шаблони сайтів і застосунків · Порівняння Mythex · Глосарій створення застосунків за допомогою ШІ · Безкоштовні інструменти для створення застосунків за допомогою ШІ · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)