Como desarrollador web relativamente nuevo (autodidacta), he escuchado los términos front-end , lado del cliente , back-end y lado del servidor con bastante frecuencia. Para mí, front-end y back-end siempre fueron sinónimos del lado del cliente y del lado del servidor, respectivamente.
Sin embargo, a medida que comencé a trabajar con marcos MVC como CodeIgniter, me encontré con algunas instancias de front-end que se refieren básicamente a todo lo que ve el usuario final (incluido el código del lado del servidor), mientras que el back-end se ha referido a cualquier cosa el usuario final no ve (incluidos los CMS). Del lado del cliente y del servidor, para mí, son mucho más concretos en sus significados; tienen una línea muy distinta que los separa. Front-end y back-end, por otro lado, no.
En una conversación que recuerdo haber tenido con otro desarrollador web, se refirió a CodeIgniter (en su totalidad) como un front-end, y esto me dejó sin aliento. No estaba seguro de si corregirlo y decir que CodeIgniter era mi back-end, o si mis definiciones de los dos términos estaban completamente equivocadas.
La búsqueda de definiciones de front-end y back-end me confundió un poco más en algunos aspectos, aunque aclararon algunas cosas. Solo me gustaría saber dónde se dibujan las líneas entre estos cuatro términos y cómo se unen en el contexto del desarrollo web (específicamente en una pila LAMP).