Desarrollo de Aplicaciones Web
Unidad 6 – Programación web en el servidor
Servidor
Servidor
Software Hardware
• Programa que suministra • Equipo que pone recursos a
servicios a los usuarios o disposición de la red mediante el
terminales que lo solicitan programa.
• También conocido como host.
¿Cómo funciona?
• Cliente-servidor
• Distribución de tareas
• Respuestas independientes
• Servicio
• Permanentemente en espera de
peticiones
• Recursos
• Archivos, datos o servicios
• Protocolo
• SMTP, HTTP, FTP
• Cliente
• Navegador web, correo electrónico
Tipos de servidores
Servidor web
¿Qué es un servidor web?
Programa que contesta y genera la respuesta HTTP a las
peticiones de recursos web por parte del cliente
• Trabajo básico:
• Conexión con el cliente
• Mensajería HTTP
• Trabajo avanzado
• Hilos por conexión
• Contenido dinámico
• Cacheo
Tipos
• Basados en procesos • Basados en sockets
• Procesos sobre el sistema • Uso de sockets (canales de
• Conexión => copia de un proceso comunicación)
• E.J.: Apache • +Velocidad
• +Simple, +Seguro • -Está basado en un proceso, un
• -Rendimiento, -Tiempo hilo
• Basados en Hilos
• Parecido al anterior
• +Sencillo, +Rendimiento, +Recursos
compartidos
• -Seguridad
Ejemplos
• Microsoft IIS • Jigsaw
• Servidor Web de alto rendimiento de • W3C; Código abierto y libre
Microsoft. • Java, PHP y scripts CGI
• Viene incluido con Windows NT / 2000 y
2003 • Ngnix
• Relativamente fácil administrarlo. • Ligero
• Unix y Windows
• Lighttpd • Licencia BSD
• Gratuito
• 19% Servidores Web
• Con S.O. FreeBSD, y en otros S.O.s
• Rápido, seguro y consume mucha menos
energía de la CPU
• Sun Java System Web Server
• Libre pero no de código abierto
• Varios lenguajes
• Multiplataforma
• Escalable
Más utilizados
Trends Netcraft
Partes de una dirección web y
enlaces
URL
• Uniform Resource Locator
• Protocolo (http, https, ftp)
• Servidor o Host
• subdominio + dominio (SLD|TLD) o IP
• Puerto
• Ruta
• Path o Directorio virtual
• Consulta
Query String Caracteres
Información adicional para el servidor
ASCII Intactos
Parámetros: clave=valor
Separados por & Espacios en blanco +
Fragmento
Identificación de parte de otro recurso Especiales (tildes) %<hexadecimal>
Parte de un documento HTML
Protocolo HTTP
Descripción
Paquetes: Solicitud y Respuestas
Protocolo HTTP
• HyperText Transfer Protocol
• Protocolo de red
• Transferencia los archivos y recursos que forman
parte de la World Wide Web
– Los archivos se denominan recursos.
• Archivos HTML, imágenes, sonidos, etc...
• Utiliza a TCP como medio de transporte.
– Puerto TCP 80
• Recursos de la WWW
– Un recurso es información que puede identificarse a través
de un URL.
– Archivos o datos generados dinámicamente.
HTTP
• Los mensajes HTTP pueden ser:
– Solicitudes
– Respuestas
• Tanto las solicitudes como las respuestas utilizan el
formato genérico de e-mails RFC-822 (Mensajes de
Texto)
• Ambos tipos de mensajes consisten de
– Una línea inicial
– Cero o más encabezados (headers)
– Una línea en blanco
– Un cuerpo del mensaje (opcional, ej. archivo, datos de una
consulta).
Solicitud HTTP
• Utiliza el modelo cliente/servidor.
– Cliente HTTP abre una conexión hacia un servidor HTTP
• Utiliza el puerto 80 que es el puerto por defecto
– Cliente envía un mensaje de petición (request)
Respuestas HTTP
• Utiliza el modelo cliente/servidor.
– Servidor envía un mensaje de respuesta el cual contiene el recurso que se solicitado y cierra la
conexión.
• Response message
– El protocolo es stateless
Códigos de Estado
• Respuesta abreviada
• 1XX Respuestas informativas
• 2XX Peticiones correctas
• 3XX Redirecciones
• 4XX Errores del cliente
• 5XX Errores de servidor
Formularios
Formularios
• Envío de datos del cliente al servidor
• Existen dos métodos HTTP más comunes: GET y POST.
• Action: ¿Quién responde?
• POST
• Intacta la URL
• Parámetros: Cuerpo de la solicitud HTTP
• GET
• Cambia el URL
• Parámetros: ?<cadena_consulta>
Arquitectura
Sirve para autentificar
y permitir el acceso
Espera y analiza las
peticiones HTTP.
Maneja múltiples
peticiones a la vez
Determina el tipo de recurso
solicitado; lo ejecuta y genera
la respuesta + registro de app
Plataformas y tecnologías
Plataforma - Tecnología
• Herramientas + funciones + • Plataforma+Framework+
Componentes Arquitectura del servidor
• = Framework específico • Por ejemplo
• PHP, Java, .NET • Plataforma: PHP
• Frameworks • Framework: Zend
• PHP, ej: • Fronted: HTML5, ES5 y CSS3
• CodeIgniter, CakePHP, y Zend • Servidor Web: Apache5
You work on a platform.
You use a framework.
Tecnologías en el servidor
• Cambios parciales. AJAX o ReverseAJAX
• Autenticación, autorización y sesiones.
+Contenido personalizado
• Template driven. Contenido repetido
generado por plantillas
• Generación de dinámica de contenidos. CSS,
ES
• Objetos HTTP
• Formularios [POST]. Transacciones completas
• Respuesta. Adaptativa y en función a
requerimientos
• Comunicación con otros APIs.
• Re-uso y persistencia de objetos. ORM
• Enrutamiento a recursos
Web Frameworks
Big Picture
Rendimiento, escalabilidad y
disponibilidad
Definición
• Calidad del servicio
• Rendimiento
• Recursos muy solicitados
• Clúster de servidores
• -Costo
• Escalabilidad
• +Usuarios, +Requerimientos,
+Negocio
• Incremento en el número de
servidores
• Disponibilidad
• Funcionando: 24/7
MVC
Seguridad Web