TELEMATICA 3 - CAPA DE APLICACION Y SERVICIOS DE RED - HTTP.pdf

Full Transcript

UNIDAD 1. CAPA DE APLICACIÓN -HTTP Dr(c). Richard Eliseo Mendoza Gáfaro Docente INTRODUCCIÓN AL HTTP HTTP, acrónimo de Hypertext Transfer Protocol, es un protocolo de comunicación utilizado en la World Wide Web para la transferencia de información entre clientes y servi...

UNIDAD 1. CAPA DE APLICACIÓN -HTTP Dr(c). Richard Eliseo Mendoza Gáfaro Docente INTRODUCCIÓN AL HTTP HTTP, acrónimo de Hypertext Transfer Protocol, es un protocolo de comunicación utilizado en la World Wide Web para la transferencia de información entre clientes y servidores. Desarrollado inicialmente por Tim Berners-Lee en el CERN a finales de los años 80, HTTP ha evolucionado a lo largo del tiempo, con su versión más conocida, HTTP/1.1, estandarizada en 1999, y la más reciente, HTTP/2, publicada en 2015, que mejora la eficiencia del protocolo mediante la compresión de encabezados y la multiplexación de conexiones (Fielding et al., 1999; Belshe et al., 2015). HTTP funciona como un protocolo sin estado, lo que significa que cada solicitud del cliente al servidor se procesa de forma independiente, sin Fuente: Wikipedia.com retener información de solicitudes anteriores. Esta característica, si bien simplifica el diseño del sistema, puede generar ineficiencias que se mitigan con el uso de cookies y sesiones para mantener el estado de la aplicación (Kristol & Montulli, 1997). La estructura básica de una interacción HTTP incluye un método de solicitud (como GET, POST o DELETE), un URI, y en las respuestas, un código de estado que indica el resultado de la solicitud (Fielding et al., 1999). Con la creciente demanda de seguridad en las comunicaciones web, HTTP se utiliza frecuentemente en conjunto con Transport Layer Security (TLS) para formar HTTPS, que Fuente: profesordeinformatica.com cifra los datos intercambiados, garantizando así la confidencialidad e integridad de la información transmitida (Dierks & Rescorla, 2008). CARACTERISTICAS HTTP 1. Protocolo Sin Estado: HTTP es un protocolo sin estado, lo que significa que cada solicitud del cliente al servidor se maneja de forma independiente. El servidor no retiene información sobre solicitudes anteriores, lo que simplifica la gestión del sistema y reduce la carga en el servidor. 2. Modelo Cliente-Servidor: HTTP sigue un modelo cliente-servidor, donde el cliente (generalmente un navegador web) envía solicitudes al servidor, que responde con los recursos solicitados, como páginas web, imágenes o archivos. 3. Métodos de Solicitud: HTTP define varios métodos de solicitud que indican la acción a realizar, como GET (recuperar datos), POST (enviar datos al servidor), PUT (actualizar recursos) y DELETE (eliminar recursos). 4. Códigos de Estado: Las respuestas HTTP incluyen códigos de estado que informan al cliente sobre el resultado de la solicitud. Estos códigos están agrupados en categorías como éxitos (2xx), redirecciones (3xx), errores del cliente (4xx) y errores del servidor (5xx). 5. URI (Uniform Resource Identifier): HTTP utiliza URIs para identificar recursos de manera única en la web. Los URIs permiten a los clientes especificar qué recursos desean acceder o manipular. 6. Encabezados: HTTP utiliza encabezados en las solicitudes y respuestas para transmitir información adicional, como el tipo de contenido, la codificación aceptada, la longitud del contenido, y detalles de autenticación. 7. Compatibilidad con Múltiples Formatos de Datos: HTTP puede transferir una amplia variedad de formatos de datos, incluidos texto, HTML, imágenes, videos, JSON, y XML, entre otros. 8. Extensibilidad: HTTP está diseñado para ser extensible, permitiendo la introducción de nuevas funcionalidades mediante el uso de encabezados personalizados y métodos adicionales. 9. Seguridad: Aunque HTTP en sí no proporciona encriptación, generalmente se utiliza junto con TLS (Transport Layer Security) para formar HTTPS, que cifra los datos transmitidos, mejorando la seguridad y privacidad de las comunicaciones. 10. Versiones del Protocolo: HTTP ha evolucionado a lo largo del tiempo, con versiones importantes como HTTP/1.1, que introdujo conexiones persistentes, y HTTP/2, que mejoró la eficiencia con características como la multiplexación de solicitudes y compresión de encabezados. INTRODUCCION APACHE Apache HTTP Server, comúnmente conocido como Apache, es uno de los servidores web más utilizados en el mundo, reconocido por su flexibilidad y extensibilidad. Desarrollado por el Apache Software Foundation, Apache fue lanzado por primera vez en 1995 y ha evolucionado gracias a una comunidad activa de desarrolladores que contribuyen a su código abierto (The Apache Software Foundation, 2023). Su arquitectura modular permite a los administradores de sistemas habilitar y deshabilitar módulos según las necesidades específicas, lo que facilita la personalización y optimización del servidor para diversas aplicaciones web. Apache puede manejar solicitudes utilizando diferentes módulos de procesamiento, como el prefork, worker y event, lo que permite adaptarse a distintas cargas de trabajo y configuraciones de hardware (Laurie & Laurie, 2002). Aunque históricamente ha enfrentado competencia de servidores más modernos como Nginx, Apache sigue siendo una opción popular debido a su extensa comunidad de soporte y su capacidad para integrarse con numerosos lenguajes de programación y tecnologías web. FUNCIONAMIENTO DE APACHE Componente/Función Descripción Apache utiliza una arquitectura modular que permite habilitar o deshabilitar módulos según sea Arquitectura Modular necesario para extender sus funcionalidades. Apache puede operar en diferentes modos de procesamiento: prefork (procesos separados), worker Módulos de Procesamiento (hilos), y event (hilos no bloqueantes), lo que permite ajustar el manejo de solicitudes según los requerimientos de carga y rendimiento. Utiliza archivos de configuración, principalmente httpd.conf, donde se definen directivas para el Sistema de Configuración funcionamiento del servidor, incluyendo el manejo de módulos, seguridad, y rendimiento. Permite configuraciones por directorio a través de archivos.htaccess, que son leídos en tiempo de.htaccess Files ejecución y permiten ajustes sin reiniciar el servidor. Apache procesa solicitudes HTTP desde los clientes, determina el recurso adecuado a servir (página Manejo de Solicitudes estática, script dinámico) y devuelve la respuesta correspondiente. Ofrece soporte para diversos lenguajes de programación a través de módulos, como mod_php para Compatibilidad con Múltiples Lenguajes PHP, mod_python para Python, y otros, integrando fácilmente aplicaciones web dinámicas. Apache puede asegurar las comunicaciones mediante la encriptación SSL/TLS, utilizando módulos Soporte para SSL/TLS como mod_ssl para habilitar HTTPS y proteger las transferencias de datos. Puede actuar como un balanceador de carga simple utilizando módulos como mod_proxy_balancer, Balanceo de Carga distribuyendo el tráfico entrante entre varios servidores backend. Apache genera registros detallados de acceso y errores, que son esenciales para monitorear el Gestión de Log rendimiento del servidor y diagnosticar problemas. Funciona en múltiples plataformas, incluidas Unix, Linux, y Windows, lo que ofrece flexibilidad para Compatibilidad de Plataforma diferentes entornos de implementación. CONFIGURACION APACHE EN CENTOS Actualiza el sistema: sudo yum update Instala el paquete Apache: sudo yum install httpd Inicia el servicio Apache: sudo systemctl start httpd Habilita el servicio Apache para que se inicie automáticamente al arrancar el sistema: sudo systemctl enable httpd Comprueba el estado del servicio Apache: sudo systemctl status httpd Deberías ver que el servicio está activo y en ejecución. Abre el firewall de CentOS para permitir el tráfico HTTP y HTTPS: sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload Verifica que el servidor Apache esté funcionando correctamente: Abre un navegador web y visita http://localhost o http://tu_direccion_ip. Deberías ver la página web predeterminada de Apache. CONFIGURACION APACHE EN UBUNTU Actualiza los paquetes del sistema: sudo apt-get update Instala el paquete Apache: sudo apt-get install apache2 Verifica que el servicio Apache esté en ejecución: sudo systemctl status apache2 Deberías ver que el servicio está activo y en ejecución. Abre el firewall de Ubuntu para permitir el tráfico HTTP y HTTPS: sudo ufw allow 'Apache' sudo ufw allow 'Apache Secure' Comprueba que el servidor Apache esté funcionando correctamente: Abre un navegador web y visita http://localhost o http://tu_direccion_ip. Deberías ver la página web predeterminada de Apache. Configura el servidor Apache según tus necesidades: Los archivos de configuración de Apache se encuentran en /etc/apache2/. Puedes editar el archivo apache2.conf o crear archivos de configuración adicionales en el directorio /etc/apache2/sites-available/. Una vez realizada la configuración, reinicia el servicio Apache: sudo systemctl restart apache2 SEGURIDAD EN DHCP La seguridad en HTTP es un aspecto crítico para proteger la información que se transmite entre los clientes y los servidores web. Una de las principales medidas para asegurar las comunicaciones HTTP es el uso de HTTPS (HTTP Secure), que combina HTTP con el protocolo TLS (Transport Layer Security) para cifrar los datos en tránsito y garantizar que no puedan ser interceptados o alterados por terceros. Además del uso de HTTPS, es importante implementar prácticas de seguridad como la configuración adecuada de los encabezados HTTP de seguridad, incluyendo Content Security Policy (CSP), Strict-Transport-Security (HSTS), X-Content-Type- Options, X-Frame-Options y X-XSS-Protection. También se debe asegurar que el servidor web y el software asociado estén siempre actualizados para proteger contra vulnerabilidades conocidas, y utilizar firewalls y sistemas de detección de intrusiones para monitorear y bloquear actividades sospechosas. Finalmente, la autenticación y autorización robustas, junto con la gestión adecuada de sesiones y contraseñas, son esenciales para proteger los recursos web contra accesos no autorizados. Implementar estas medidas contribuye significativamente a la seguridad de las aplicaciones y servicios web. BIBLIOGRAFIA Belshe, M., Peon, R., & Thomson, M. (2015). Hypertext Transfer Protocol Version 2 (HTTP/2). RFC Editor. Dierks, T., & Rescorla, E. (2008). The Transport Layer Security (TLS) Protocol Version 1.2. RFC Editor. Fielding, R., Gettys, J., Mogul, J., Frystyk, H., & Berners-Lee, T. (1999). Hypertext Transfer Protocol -- HTTP/1.1. RFC Editor. Kristol, D. M., & Montulli, L. (1997). HTTP State Management Mechanism. RFC Editor. Laurie, B., & Laurie, P. (2002). Apache: The Definitive Guide. O'Reilly Media. The Apache Software Foundation. (2023). Apache HTTP Server Project. Retrieved from https://httpd.apache.org/

Use Quizgecko on...
Browser
Browser