Задать вопрос

Правильно ли я разделяю FrontEnd и Backend?

Постараюсь передать проблему максимально точно.

Итак, у меня есть сайт. На нем раздельная структура, BackEnd и FrontEnd
Для FrontEnd - отдельный сервер, для backend - тоже отдельный, назовем их условно front.domain.com и back.domain.com. Вот тут оговорюсь, возможно, я не верно разделяю Front и Back, с такой кросс-серверной структурой я работаю первый раз, по этому возможно ошибка допущена еще в "фундаменте" проекта.

Проверяйте, правильно делаю?
1. На сервере ForntEnd - отрисовка страниц, но не средствами JS, а средствами PHP. Почему - оговорю ниже, возможно это тоже не верно
2. На сервере BackEnd - получение данных из базы некоторые функции, например получение кол-ва подписчиков
3. После перехода на ссылку: например domain.com/catalog, загружается требуемая страница, все динамические значения вставлены туда средствами PHP, далее при переходе по страницам сайт просто подгружает необходимый контент в блок, так со всеми ссылками.

Наконец-то, сам вопрос
Собственно, было бы все на 1-м сервере, т.е и BackEnd и FrontEnd - я бы мог в файле catalog.php просто подключить файл API сайта require("api.php"). Но я же такой, хочу на разных серверах ForntEnd и BackEnd. Окей, из положения можно выйти: написать весь API код в ForntEnd, но какой это тогда ForntEnd если он подтягивает данные с базы)) Из за этого я усомнился, верно ли я разделяю два этих компонента.

Знаю, что фронт - это грубо говоря то, что обрабатывается на клиенте. Я могу сделать все на JS, но тогда как сделать редиректы без перезагрузки страницы? при этом, чтобы оставалась еще и динамическая ссылка на ресурс
  • Вопрос задан
  • 5126 просмотров
Подписаться 4 Средний 7 комментариев
Ответ пользователя FeNUMe К ответам на вопрос (3)
FeNUMe
@FeNUMe
У вас проблема с определениями:
frontend - все что работает на стороне клиента, то есть разметка html, стили css, скрипты javascript.
backend - серверная часть отвечающая за получение/обработку/возврат данных, в том числе за генерацию html при необходимости.

Конкретно в вашем случае все что написано на php это backend, какие бы задачи в нем не выполнялись.
Что же касается разделения серверов, то тут все просто: на одном реализуете api(сразу почитайте про REST) в котором реализуете обработку данных(модели и бизнес логику), на втором реализуете роутинг и генерацию frontend части(представления), которая уже будет работать с api. Но я бы отказался от динамической генерации на php, в пользу статического фронта работающего с api напрямую через js.
Ответ написан