En la publicación de LAMP Stack vimos los componentes de esta plataforma y las tareas generales de cada uno de ellos.
En esta publicación voy a redactar – de manera general – el funcionamiento del Stack al solicitar una página – de un sitio web – y una aplicación – que utiliza y que no utiliza bases de datos -.
Página
- Un cliente solicita una página “index.html” utilizando un navegador web.
-
El servidor web busca el archivo “index.html” en el sistema de archivos.
El servidor tiene configurada una carpeta – htdocs – en la cuál están los diferentes proyectos y/o archivos que se pueden consultar a través del servidor. Esta carpeta se le conoce como “DocumentRoot“.
Además de esto, en el servidor web, cada proyecto tiene asociado el nombre de dominio – o una dirección IP -. Es aquí donde se buscan los archivos / documentos solicitados. A esta carpeta se le conoce como “vhost” – host virtual -. Cabe mencionar que cada host virtual tiene asignado un “DocumentRoot“.
-
Una vez encontrado el archivo es enviado por el servidor web al cliente.
Si no se encontró le muestra un mensaje indicando esto.
Aplicación
- Un cliente solicita un documento “index.php” utilizando un navegador web.
-
El servidor web busca el archivo “index.php” en el vhost.
Una vez encontrado el archivo, en lugar de al cliente, el servidor web manda procesar este archivo al lenguaje de programación – PHP -.
¿Por qué se mandó procesar el archivo y no se envió al usuario?
El servidor web tiene asociados distintos tipos de extensión de archivo con algún comportamiento que deben tener – acciones a realizar -.
Una de estas asociaciones es que los archivos que tienen extensión php necesitan procesarse antes de ser enviados al cliente.
- PHP recibe la instrucción de que tiene que procesar un archivo y lo comienza a procesar.
- Una vez que PHP termina de procesar el archivo envía de vuelta el resultado del procesamiento al servidor web.
- El servidor web envía el resultado del procesamiento del archivo al cliente.
Aplicación / Base de Datos
- Un cliente solicita un documento “index.php” utilizando un navegador web.
- El servidor web busca el archivo “index.php” en el vhost.
- PHP recibe la instrucción de que tiene que procesar un archivo y lo comienza a procesar.
- Si dentro del código existe una conexión a una base de datos y sentencias para realizar se realiza la conexión y se realizan las sentencias.
- Una vez que se procesaron las sentencias en SQL PHP recibe el resultado y continúa procesando el código restante.
- Una vez que PHP termina de procesar el archivo, se envía el resultado del procesamiento al servidor web.
- El servidor web envía el archivo procesado al cliente.