Come sviluppatore web relativamente nuovo (autodidatta), ho sentito i termini front-end , lato client , back-end e lato server abbastanza spesso. Per me, front-end e back-end erano sempre sinonimi rispettivamente lato client e lato server.
Tuttavia, dato che ho iniziato a lavorare con framework MVC come CodeIgniter, ho riscontrato alcune istanze di front-end che si riferiscono sostanzialmente a tutto ciò che l'utente vede (incluso il codice lato server), mentre il back-end ha riferito a tutto ciò che l'utente finale non vede (compresi i CMS). Lato client e lato server, per me, sono molto più concreti nel loro significato; hanno una linea ben distinta che li separa. Front-end e back-end, d'altra parte, no.
In una conversazione che ricordo di aver avuto con un altro sviluppatore web, ha fatto riferimento a CodeIgniter (nella sua interezza) come front-end, e questo mi ha buttato per un loop. Non ero sicuro se correggerlo e dire che CodeIgniter era il mio back-end, o se le mie definizioni dei due termini erano completamente sbagliate.
La ricerca di definizioni di front-end e back-end mi ha confuso un po 'di più per alcuni aspetti, anche se hanno chiarito alcune cose. Vorrei solo sapere dove sono tracciate le linee tra questi quattro termini e come si mettono insieme nel contesto dello sviluppo web (in particolare su uno stack LAMP).