Правильно ли я разделяю 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, но тогда как сделать редиректы без перезагрузки страницы? при этом, чтобы оставалась еще и динамическая ссылка на ресурс
  • Вопрос задан
  • 4901 просмотр
Пригласить эксперта
Ответы на вопрос 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: статейка по тому, как это можно сделать.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Искра Екатеринбург
от 80 000 до 100 000 ₽
Art gorka Санкт-Петербург
от 60 000 ₽
от 40 000 до 60 000 ₽
20 апр. 2024, в 12:50
30000 руб./за проект
20 апр. 2024, в 12:01
20000 руб./за проект
20 апр. 2024, в 11:52
5000 руб./за проект