Как реализовывается SPA приложение? Какой бэк выбрать между PHP и Java?
=========================================================================

 Ниже вопросов немного описания для чего мне это.  

Имеем:   

Сервер отдает входную страничку (например spa-face.com). Она формируется на сервере и отдается клиенту, а далее работает ajax с подгрузкой данных (например в json-формате).  

1. И тут возникает первый вопрос - прорисовка UI по этим данным производится на стороне. Каким образом это реализуется? В получаемых данных кроме самих данных еще хранится информация о прорисовке компонентов для отображения?   

2. Если пользователь изначально забивает не корень сайта, а например spa-face.com/posts, то какие операции проделывает сервер и какие клиент? (сервер сразу должен отдать данные для прорисовки конкретной страницы, или он отдает входную, а затем каким-то образом посылается еще запрос на получение posts?  
  

Важный момент - спрашиваю т.к. нужно реализовать web app. MPA не вариант, т.к. данные будут браться с бэка через REST API (не FULL). Бэка два, уже написаны до меня - один на PHP, другой на JAVA. Пользовали его в мобильных приложениях для отслеживания "телодвижений" (контроля). А мне теперь нужно неспеша это все перевести на web с добавлением логики и составления отчетности.   

Как бы знаю Java Core, PHP, немного JS, разметку, стили. Это база, поэтому нужно подучить что-то новенькое. А тут какраз можно совместить приятное с полезным.  

Начал рыться в просторах паутины и загруз в зоопарке возможных решений. В классическом фронте сейчас мода на React+Redux или Angular. А вот по Java что-то туго найти сторону, в которую желательно смотреть - второй день читаю "битвы" приверженцев разных технологий. В основном это монстрик Spring, GWT, или как бы мертвый JSF. Застрелиться можно )))  
  

В общем, дайте плиз ответы на два вопроса (своими словами, ссылками, только чтобы минимум текста, желательно с примерами).  

А также подскажите на чем мне запилить фронт. В принципе картинка не важна, поэтому есть возможность поизвращаться запилив одно направление на одной технологии, другое на другой (сервера то два :-) ) 

 1 естественно что все данные для прорисовки передаются сразу  

в случае spa это как правило неизменный каркас, css, и кусочки html в качестве шаблонов в js который и занимается "отрисовкой"  

2 тут уж как сам настроишь  

проще всего редиректить на главную с указанием в хеше что догрузить  
  

зы мобильное приложение можно сделать из SPA с помощью cordova и минимальной доработки напильником 

 Выбирай Java. Для SPA хорошо подойдёт Spring WebFlux, но можно и на JAX-RS накатать.