En toda conexión web existen dos partes bien separadas: cliente y servidor. Cuando el cliente (el navegador web, por ejemplo) accede a una URL el servidor procesa la petición y devuelve una respuesta , que puede ser un archivo HTML, JSON, XML…
Dependiendo de si el contenido del archivo es fijo o se genera en cada petición, hablamos de páginas web estáticas o dinámicas.
Antiguamente el cliente se dedicaba solo a hacer peticiones y mostrar la respuesta en formato HTML. Era el servidor el encargado de recibir las peticiones de los clientes, procesarlas, acceder a la base de datos, montar las vistas (los diferentes archivos html) y enviarlas al cliente.
Hoy en día existen multitud de dispositivos que pueden realizar peticiones a servidores web, y muchos de ellos no pueden interpretar los archivos html, de ahí la importancia de los servicios web (como las API Rest), donde el servidor se dedica únicamente a recibir las peticiones de los clientes, acceder a la bbdd y devolver los datos al cliente (en formato XML, JSON…). En este caso, es el cliente el encargado de montar las diferentes vistas con los datos recibidos del servidor.
De esta forma, el servidor no hace todo el trabajo, dejando al cliente la parte de montar las vistas (o gestionando los datos como quiera) aligerando la cargar de trabajo.
En las páginas web estáticas el servidor muestra siempre la misma información en todo momento, dependiendo sólo del archivo html solicitado. En el caso que la información que queramos mostrar sea dinámica este enfoque no sirve. Por ejemplo, si creamos una web para una empresa con 10.000 productos, nos obligaría a crear 10.000 páginas iguales para cada producto (lo único que cambiaría sería la información del producto).
Las páginas web dinámicas generan las respuestas de forma dinámica, es decir, dependiendo de alguna opción (como el identificador del producto) devuelve una información u otra.
Para poder generar esas respuestas de forma dinámica necesitamos instalar en nuestro servidor HTTP un interprete del lenguaje de programación utilizado y, generalmente, un sistema gestor de base de datos.
Si nuestro sitio web se limita a mostrar información sin necesidad de mostrar contenido dinámico es mejor usar archivos html estáticos, ya que el servidor no tendrá que procesar los archivos del lenguaje utilizado para convertirlos en html y servirá las páginas más rápido.
En cualquier caso, hoy en día casi todas las webs tienen algún tipo de contenido dinámico (información almacenada en una bbdd, páginas con información de usuarios…), con lo que si queremos trabajar como programadores web, tendremos que aprender como crear este tipo de contenido.
Para crear un sitio web dinámico y que sea accesible, necesitamos una serie de componentes (tanto en nuestro hosting como en local para desarrollarlo):
Un servidor HTTP o servidor web es un programa informático que procesa las peticiones de los clientes y genera una respuesta en cualquier lenguaje o aplicación del lado del cliente. El código recibido por el cliente es renderizado por un navegador web. Generalmente se utiliza el protocolo HTTP para estas comunicaciones.
Actualmente existen muchos servidores HTTP. A continuación veremos algunos de los más usados.
Para poder servir webs dinámicas, necesitamos algún lenguaje de programación para poder generar la información (archivos html, datos…). Para la parte del cliente (frontend), los más usados son HTML, CSS y Javascript. En la parte del servidor (backend), tenemos varias opciones, por ejemplo:
La mayoría de aplicaciones web, utilizan algún sistema gestor de base de datos. Existen multitud de SGBD en el mercado, tanto libres como de pago:
Lo primero que tenemos que hacer para desarrollar un proyecto web es instalar y configurar nuestro entorno de desarrollo local. Si vamos a crear una web estática no haría falta instalar nada. Podemos crear los diferentes archivos html en una carpeta (con los css y las imágenes que utilicemos) y el navegador ya se encargaría de interpretarlos y mostrar su contenido.
Por el contrario, si queremos desarrollar una web dinámica tendremos que instalar los componentes vistos en el punto anterior (servidor HTTP, intérprete del lenguaje de programación y SGBC). Podemos instalar cada uno de estos componentes por separado, pero existen soluciones integradas que nos instalan todos esos componentes de forma rápida y sencilla.
Como hemos visto en el punto anterior, podemos instalar todo lo necesario para desarrollar web dinámica sin necesidad de instalar y configurar cada una de sus partes por separado.
El siguiente paso, una vez hemos instalado y configurado nuestro entorno de desarrollo local, será elegir el programa que vamos a utilizar para crear nuestras aplicaciones.
Aunque se puede utilizar la mayoría de editores de texto que vienen instalados por defecto en los sistemas operativos (notepad, gedit…), sus recursos se quedan cortos a la hora de programar. En este sentido, podemos optar por instalar un editor de texto enriquecido, con funciones extras para la programación, o algún entorno de desarrollo integrado (IDE). La principal diferencia radica en las herramientas disponibles en cada uno de ellos para trabajar.
Mientras que un IDE suele tener muchísimas herramientas integradas, los editores de texto tienen bastantes menos en comparación (aunque a la mayoría se le pueden agregar esas herramientas mediante plugins). Por contra, la curva de aprendizaje de un editor de texto es mucho menor que la de un IDE. Además, por noma general un editor de texto tiene un tamaño mucho menor que un IDE, con lo que es más ligero que un IDE.
Ejercicio 1
Asegúrate de tener instalado JDK en tu ordenador. En caso contrario, instálalo y configura correctamente las variables de entorno.
Ejercicio 2
Instala MariaDB en tu ordenador y algún editor de textos enriquecido o IDE (VSC, IntelliJ…). Puedes instalar también alguna aplicación para gestionar tu SGBD (HeidiSQL, Workbench, DBeaver…)