Правильно ли я разделяю 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, но тогда как сделать редиректы без перезагрузки страницы? при этом, чтобы оставалась еще и динамическая ссылка на ресурс
  • Вопрос задан
  • 5048 просмотров
Пригласить эксперта
Ответы на вопрос 3
FeNUMe
@FeNUMe
У вас проблема с определениями:
frontend - все что работает на стороне клиента, то есть разметка html, стили css, скрипты javascript.
backend - серверная часть отвечающая за получение/обработку/возврат данных, в том числе за генерацию html при необходимости.

Конкретно в вашем случае все что написано на php это backend, какие бы задачи в нем не выполнялись.
Что же касается разделения серверов, то тут все просто: на одном реализуете api(сразу почитайте про REST) в котором реализуете обработку данных(модели и бизнес логику), на втором реализуете роутинг и генерацию frontend части(представления), которая уже будет работать с api. Но я бы отказался от динамической генерации на php, в пользу статического фронта работающего с api напрямую через js.
Ответ написан
angrySCV
@angrySCV
machine learning, programming, startuping
Одного подхода нет, есть у вас конкретные задачи, под них подбераете решение (архитектуру), можно постоянно подготавливать фронтэнд на бэкенде, можно отдавать заранее подготовленный фронтэнд (в виде ХТМЛ или ЖС файлов пользователю) который потом будет собирать у себя в браузере более сложный вид продукта.
==
Вам просто нужно определится как бы обмениваетесь данными между фронтэндом и бэкендом, обычно используют формат JSON (не обязательно).
Сейчас часто распространена схема при которой - JS скрипты в браузере клиента грузят с бэкенда только JSON с данными и отображают эти данные в более сложных формах непосредственно в браузере.
П. С.
логику редиректов и всякого такого роутинга можно написать на самом фронтэнде, перехватывая запросы пользователя и специфичным образом их обрабатывая, запрашивая нужные данные с бэкенда через апи.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Знаю, что фронт - это грубо говоря то, что обрабатывается на клиенте. Я могу сделать все на JS, но тогда как сделать редиректы без перезагрузки страницы? при этом, чтобы оставалась еще и динамическая ссылка на ресурс
Вот с этого надо было и начинать, и этим же и закончить свой вопрос! Всё остальное - бессмысленно.

HTML5 history API: статейка по тому, как это можно сделать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы