Man, problema e simpla.
Inainte exista client side si server side. Clientul (browserul) era dumb, cerea pagina, serverul facea operatiile necesare (interogare, db, pregatire pagina si returna un html).
Cu timpul, calculatoarele au evoluat, atat serverele, cat si pc-urile. Au aparut doua lucruri noi: serverele erau din ce in ce mai asaltate de din ce in ce mai multi clienti si pc-urile erau din ce in ce mai bune. Astfel au aparut frameworkurile de frontend si backend-ului i s-au mai luat din sarcini. Angular, vue sau react se ocupa inclusiv de routing. Iar backendul e lightweight, adica face doar webapi (mare pare responseuri, requesturi http). O alta problema introdusa de http2 este faptul ca daca ai login nu mai esti stateless, ai sesiune. Cu tokenul de oauth rezolvi si problema de sesiune si nu mai trebuie sa mentii corespondenta user sesiune. Deci backend si mai light.
Deci pt a avea un backend cat mai fit cauta microservices si web api (aici scapi de obfuscarea codului- ce e pe statiile tale e sfant, pastrezi algoritmii secreti la tine) si pt frontend gras cauta frameworkurile de frontend.
Spor la treaba la citit de arhitecturi software!
Bonus: cauta pe zlib cartile de arhitectura de la manning.
Bonus 2: