Aprende a diferenciar las tecnologías de lado del cliente y de lado del servidor.
Siinicias en el desarrollo web es altamente probable que te hayas encontrado con estos términos:
En esta artículo aprenderás a diferenciarlos.
Este artículo te resultará muy útil, especialmente si:
La intención de este artículo esdescribir de forma resumida las diferencias, y explicar a través de ejemplos.
Y recuerda:
Si algo no te queda claro, puedes escribir un comentario, o contactarme a través de las redes.
Sin más preámbulos, empecemos:
En el desarrollo web moderno intervienen muchos roles en el desarrollo de aplicaciones web.
"Desarrollador frontend" y "desarrollador backend" son solo 2 de estos roles.
Ambos en conjunto cubren el desarrollo delo que se ve ycómo funciona una página web, sin embargohay más funciones que se deben desempeñar y que no son muy obvias cuando recién inicias en el desarrollo web.
¿Cómo es posible que existan tantos roles si mi amigo hace páginas web él solo y en poco tiempo?
Muchos desarrolladores empiezan de este modo. Es posible, y no hay nada de malo en ello. Pero permíteme que te explique con mayor detenimiento.
Lo primero que debes saber es que, es diferente desarrollar unapágina informativa, que desarrollar unaplataforma web donde es posible la interacción entre usuarios.
Y eso, también es diferente a desarrollar un sistema web que permita gestionar todas las operaciones (internas y externas) de una empresa, e integrevarios módulos: compras, ventas, contabilidad, facturación, gestión de talento humano, reclutamiento, entre otras funcionalidades más.
Como ya lo habrás notado,mientras más complejo es un proyecto, más roles se van a necesitar, a fin de entregar un software de calidad, en un tiempo prudente.
A continuación algunos roles más que intervienen en el desarrollo de proyectos de software (no se limita a desarrollo web):
Pero no nos desviemos del tema.Vamos a lo que nos interesa.
Cuando un usuario llega a una página web, se realiza unapetición al servidor donde está alojada dicha página.
Como respuesta a esta petición,el dispositivo que usa el usuario recibe información (y se le llama cliente porque es quien hace la petición).
Como parte de esta información, encontramos: archivos HTML, CSS y Javascript, además de imágenes, sonidos, videos y otros recursos que podría tener el sitio.
Es el navegador el que se encarga de interpretar toda esta información (sea que estés usando Chrome, Firefox, Safari o el mismo Internet Explorer).
Veamos entonces las tecnologías del lado del cliente:
La tecnología usada como backend se encargará de elaborar una respuesta, y entonces devolverá al cliente archivos HTML, CSS, Javascript y demás recursos.
Elaborar una respuesta puede implicar varias cosas. Algunas de ellas podrían ser:
Así,el cliente recibirá la respuesta ya procesada.
Podrá alterar estos archivos como ya te comenté antes, pero los datos verdaderos (leídos de una o varias bases de datos) se verán reflejados en la respuesta que realiza el servidor.
Y eso es lo que ven también todos los clientes conectados,como la verdad absoluta.
Para que se comprenda mejor te pongo un ejemplo.
Hace poco encontré un juego online bastante entretenido, al estilo del entrañableBomberman.
Era un juego de "todos contra todos" donde cada uno controlaba un personaje y trataba de conseguir la mayor cantidad de víctimas posible.
El punto es que, algunos personajes tenían apareciencias más destacables.
Algunos jugadores tenían como personaje a Naruto, Batman, Spiderman, un zombie, un dragón, un gato, etcétera.
Genial, ¿y cuál escogiste?
Lamentablemente no podía cambiar el skin de mi personaje porque para ello había que recargar puntos, y por tanto pagar. Y yo solo estaba de pasada.
El servidor es el que se encarga de ver qué jugadores están conectados, qué skin tiene escogido cada jugador, y de comunicar esta información a cada cliente conectado.
Yo analicé un poco el código Javascript y pude cambiar la apariencia de mi personaje,alterando el código Javascript que se ejecutaba en mi ordenador.
Fue bueno, porque pude jugar con una apariencia más llamativa.
Pero lo triste detrás de esta historia (como ya habrás notado) es que sólo yo me veía de esa forma. Todos los demás jugadores me veían con la apariencia por defecto.
¿Y te quedaste tranquilo?
Si tu pregunta está orientada a si pagué, pues creo que la cosa no va por allí :P
Pero si me estás preguntando si detecté algunavulnerabilidad en el sitio, es una buena pregunta.
Accedí a la tienda. Vi el botón para comprar el skin que quería. Le di clic.
Apareció una ventana flotante solicitando que realice un pago.
Revise los eventos del botón, a fin de predecir qué pasaría luego de hacer la compra.
Y curiosamente encontré una función que le decía al servidor que me asigne el skin que había escogido, y que a su vez me lo asigne por un tiempo limitado (¿gran negocio verdad?).
Entonces hice la petición al servidor por mi cuenta. Creí que había conseguido lo que quería.
Pero no. El servidor verificó si había un pago registrado en la base de datos.
Como ese pago no existía, la orden que se le daba perdía peso, y por tanto no se ejecutaba.
Esa es laverdad absoluta que el servidor debe imponer.
Es lógico que un juego con una cantidad considerable de usuarios activos, tenga muy bien desarrollado tanto su lado frontend (las animaciones que realiza el juego, los colores, los estilos de fuente, las imágenes, las ventanas flotantes) como su lado backend (las validaciones, la correcta ejecución de las operaciones de compra).
Pero lo cierto es que muchos sitios no están creados correctamente.
Algunos sitios realizan validaciones en el lado del cliente (usando Javascript), pero no validan adecuadamente en el lado del servidor.
A continuación, un listado de las tecnologías más representativas del desarrollo backend:
Lo que se menciona primero es el lenguaje y lo que está entre paréntesis son unos ejemplos de frameworks para cada uno de ellos.
Si aprendes bien los fundamentos de un lenguaje de programación, es cuestión de días para que puedas crear tus primeros proyectos con un framework distinto, correspondiente a dicho lenguaje de programación.
Ok. Pero, espera, ¿acabas de mencionar Javascript como una tecnología backend?
Así es. Javascript es un lenguaje de programación que se puede ejecutar como tecnología de lado del cliente (sobre el navegador), pero también puede funcionar como una tecnología de lado del servidor.
Ya veo. De todas formas, me parece que el backend es mucho más complejo que el frontend.
Cuando uno recién empieza, puede tener esa impresión.Pero déjame decirte 3 cosas:
Lo diré de forma breve para que no resulte confuso, perote dejaré un enlace por si quieres profundizar un poco más acerca de la situación actual del desarrollo frontend y lo que comprende.
Así como existen tecnologías backend y frameworks para estos lenguajes, existe también toda una variedad de frameworks para #"/series/aprende-vue-3-vite-vuerouter-vuetify-pinia-y-typescript">Vue
Espera, ¿y jQuery?
JQuery es una biblioteca de funciones de Javascript.
Es ideal para cuando inicias en el desarrollo web y estás aprendiendo lo básico sobre HTML, CSS y Javascript.
Pero las aplicaciones web modernas son un tanto más complejas, yjQuery se queda bastante corto, comparado a lo que ofrecen los frameworks antes citados.
Hay mucho por aprender.
Cuanto más aprendas, notarás que hay mucho más por aprender.
Y eso no es una desventaja. Es una ventaja que el mundo se "actualice" tan rápidamente.
Sería aburrido hacer todo siempre de la misma forma, ¿verdad?
Siempre que aprendas algo nuevo, compártelo. Es la mejor forma de aprender.
Si este artículo te ha parecido interesante, por favor compártelo con tus amigos, compañeros, familiares y/o en redes sociales.
Gracias por leer hasta el final!
Cursos Recomendados 🚀
Curso intensivo. Incluye el desarrollo de una API, su consumo, y autenticación vía JWT. También vemos Kotlin desde 0.
Iniciar cursoDomina JS con este curso práctico y completo! Fundamentos, ejemplos reales, ES6+, POO, Ajax, Webpack, NPM y más.
Iniciar cursoAprende por qué es importante y cómo funciona Docker, con este nuevo curso práctico!
Iniciar cursoEspera un momento 🎁 ...
¿Te gustaríaaprender a programar, gratis?
Sólo debes registrarte 😉.