UT1: Aplicaciones Web PDF
Document Details
Tags
Summary
This document provides an overview of web applications, client-server architecture, and various types of web servers. The document analyzes different aspects of web application development.
Full Transcript
UT1: Aplicaciones Web Arquitectura cliente-servidor La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las tareas se reparten entre los proveedores de recursos o servicios, llamados servidores, y los demandantes, llamados clientes. Un cliente...
UT1: Aplicaciones Web Arquitectura cliente-servidor La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las tareas se reparten entre los proveedores de recursos o servicios, llamados servidores, y los demandantes, llamados clientes. Un cliente realiza peticiones a otro programa, el servidor, que le da respuesta. Esta idea también se puede aplicar a programas que se ejecutan sobre una sola computadora, aunque es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de computadoras. + Congestión del tráfico. ✓ Centralización del control. + Cuando un servidor está caído las peticiones ✓ Escalabilidad. de los clientes no pueden ser satisfechas. ✓ Fácil mantenimiento. + El software y el hardware de un servidor son generalmente muy determinantes. ✓ Existen tecnologías que aseguran la seguridad en las transacciones. + El cliente no dispone de los recursos que puedan existir en el servidor. Arquitectura cliente-servidor Características del cliente Es el que inicia solicitudes o peticiones. Tiene, por tanto, un papel activo en la comunicación. Espera y recibe las respuestas del servidor. Por lo general, puede conectarse a varios servidores a la vez. Normalmente, interactúa directamente con los usuarios finales mediante una interfaz gráfica de usuario. Arquitectura cliente-servidor Características del servidor Al iniciarse espera a que le lleguen las solicitudes de los clientes. Desempeñan entonces un papel pasivo en la comunicación. Tras la recepción de una solicitud, la procesan y luego envían la respuesta al cliente. Por lo general, aceptan conexiones desde un gran número de clientes (en ciertos casos, el número máximo de peticiones puede estar limitado). Servidor y aplicación Web Los servicios son procesos, programas en ejecución, que suelen ejecutarse de forma transparente al usuario. Un servidor es un ordenador o máquina informática que está al servicio de otras máquinas, ordenadores o personas llamadas clientes y que le suministran a estos todo tipo de información. 1. Servidor DHCP 2. Servidor DNS 3. Servidor FTP 4. Servidor Web 5. Servidor de correo 6. Servidor de BBDD 7. Servidor de aplicaciones 8. Servidor de archivos 9. Servidor proxy Servidor y aplicación Web El uso de aplicaciones web requiere: Software servidor: conjunto de herramientas software que responde a las peticiones de los usuarios que estará normalmente instalado en un servidor, ejemplo: Apache Cliente: normalmente un navegador, que puede estar ejecutándose en un PC, móvil u otra máquina Un protocolo de comunicaciones: el más usado HTTP o HTTPS Un lenguaje de codificación de la información: el más conocido HTML Servidor y aplicación Web Servidor Web WWW (World Wide Web). Un servidor web se encarga de alojar y proporcionar las páginas web solicitadas por los clientes desde sus navegadores. Maneja el protocolo HTTP (Hipertext Transfer Protocol) y HTTPS (Hipertext Transfer Protocol Secure) El protocolo HTTPS protege la integridad y confidencialidad de los datos entre el cliente y servidor. La integridad se refiere a que la página recibida en el cliente sea la realente enviada por el servidor. La confidencialidad a que los datos enviados en la comunicación no puedan ser interceptados por viajar cifrados. Los servidores web más conocidos son: Apache: software libre multiplataforma para Windows, Linux y MacOS. Nginx, también software libre multiplataforma IIS - Internet Information Server, servicio de Microsoft para los sistemas operativos Windows Servidor y aplicación Web Aplicación Web Los clientes son los navegadores web. Las principales diferencias entre los distintos clientes web residen en el número e importancia de vulnerabilidades que presentan así como en diferentes matizaciones que existen en cuanto a la interpretación del código HTML. También incluyen la interpretación de scripts del lado cliente como Javascript. Podemos decir que una aplicación web es una herramienta instalada en un servidor web que es utilizada a través de un navegador. Actividad: Buscar información sobre la información de la web. Web 1.0, Web 2.0, Web 3.0 … Servidor y aplicación Web Tipos de aplicaciones web: Buscadores de internet. Correo electrónico Sistema de gestión de contenidos E‐commerce (CommercePrestaShop, OpenCart) Enseñanza online(Learning Management System). Servidor y aplicación Web Servicios de almacenamiento en la nube (Dropbox, Google Drive, One Drive). Han solucionado los problemas de almacenamiento en dispositivos (coste alto y disponibilidad). Desde cualquier dispositivo con conexión a internet podemos consultar, editar y tener siempre actualizados documentos originales en la nube. En general los servicios de almacenamiento suelen ofrecer: Varios Gigas de almacenamiento en la nube. Compartición de carpetas y archivos. Sincronización de archivos con nuestro PC,Tablet o móvil. Apps para acceder desde móvil y Tablet. Algunos admiten edición de archivos directamente desde el navegador. Ampliación: UT1_Ampliación_Cloud Computing Servidor y aplicación Web Protocolo HTTPs HTTP (Protocolo de Transferencia de Hipertexto) es el lenguaje de comunicación que se utiliza en la Web para que los clientes y los servidores puedan entenderse entre sí. ▪ Escucha por el puerto TCP 80. ▪ Es un protocolo orientado a transacciones y sigue el esquema petición‐respuesta entre un cliente y un servidor. No es un protocolo seguro, cargan información al servidor que puede ser interceptado y leído ▪ Para una comunicación segura a través de Internet, se utiliza el protocolo HTTP seguro (HTTPS) para acceder o subir información al servidor Web. Este protocolo puede utilizar autenticación y encriptación para asegurar los datos cuando viajan entre el cliente y el servidor. Utiliza un cifrado basado en SSL/TLS. Escucha por el puerto 443. Creación de aplicaciones Web Principales elementos necesarios para poner aplicación web operativa: ❖ SERVIDOR WEB: Máquina o software capaz de interpretar peticiones web: hay servidores PHP, servidores.NET, servidores Java… ❖ SERVIDORES DE APLICACIONES WEB: Tomcat, Node.js ❖ SISTEMAS GESTORES DE BASES DE DATOS: MYSQL, MongoDB Ampliación : http://nilclass.com/courses/how-websites-work/#2 Creación de aplicaciones Web Lenguaje de lado cliente El intérprete que ha de ejecutar los scripts es accesible directamente desde el cliente, sin que sea necesario hacer ninguna petición al servidor. Los usuarios tienen la posibilidad de visualizar el código fuente de los scripts de dos formas: ✓ De manera directa: mirando el código fuente de la página recibida ✓ Leyendo el contenido de fichero externos, que se encuentran generalmente en la caché del navegador. Tecnologías del lado cliente ▪ VBScript ▪ JavaScript ▪ CSS, HTML, DHTML ▪ Silverlight ▪ Applets de Java Creación de aplicaciones Web Lenguaje de lado servidor La ejecución de los script se efectúa en el propio servidor antes de dar respuesta a la petición, de manera que el cliente no recibe el documento original sino el resultante de esta interpretación previa. Cuando se utilizan este tipo de lenguajes, el cliente recibe un documento en el que cada script contenido en el original habrá sido sustituido por los resultados de su ejecución. ✓ Los usuarios no podrán visualizar el código fuente ✓ La utilización de este tipo de scripts requiere que el interprete del lenguaje sea accesible desde el propio servidor. Tecnologías del lado servidor ▪ Lenguajes: Perl, Phyton, Ruby, Java, C# ▪ Lenguajes de script: PHP, ASP,JSP, ColdFusion Silverlight ▪ Applets de Java Creación de aplicaciones Web Los contenidos estáticos son aquellos cuyo contenido no cambia, es decir, el servidor se limita a recuperar el fichero y enviarlo tal cual al cliente, y éste siempre visualiza la misma página. Los contenidos dinámicos son aquellos que si pueden ser modificados (de forma automática o mediante intervención del usuario) bien sea desde el cliente y/o el servidor. ✓ Para que esas modificaciones puedan producirse se necesita que algo o alguien especifique qué, cómo , cuándo, dónde y de qué forma realizarse y que exista otro algo o alguien capaz de acceder, interpretar y ejecutar las instrucciones en el momento preciso. ✓ Las especificaciones y las instrucciones requieren de un lenguaje para definirlas, un soporte para almacenarlas y un intérprete capaz de ejecutarla. Las aplicaciones web son páginas dinámicas, el contenido cambia, puesto que lo normal es que el usuario interactúe con el servidor Creación de aplicaciones Web Creación de aplicaciones Web 1. El navegador efectúa la petición de la página. 2. El servidor localiza la página solicitada 3. El servidor envía el documento en formato HTML o un mensaje de error en el caso de no ser encontrado 4. El navegador interpreta el documento y presenta en pantalla la página resultante Creación de aplicaciones Web Creación de aplicaciones Web Creación de aplicaciones Web Creación de aplicaciones Web 1. El navegador efectúa la petición de la página. 2. El servidor localiza la página solicitada 3. El servidor envia el documento en formato HTML o un mensaje de error en el caso de no ser encontrado 4. El documento es interpretado por el navegador, son llamados y ejecutados los interpretes de los scripts y se presenta en pantalla el resultado. Creación de aplicaciones Web 1. El navegador efectúa la petición de la página. 2. El servidor llama al interprete de PHP si es necesario. 3. PHP ejecuta los scripts (interactuando con la BD si es preciso) y devuelve al servidor el documento generado. 4. El servidor envía el documento resultante en formato HTML 5. El documento es interpretado por el navegador, se ejecutan los scripts del lado cliente y se presenta el resultado en pantalla. Creación de aplicaciones Web Creación de aplicaciones Web