17
  El servidor HTTP Apache es un servidor web HTTP de código abierto, para plataformas Unix (BSD, GNU/Linux, etc.), Microsoft Windows, Macintosh y otras, que implementa el protocolo HTTP/1.12 y la noción de sitio virtual. El servidor Apache se desarrolla dentro del proyecto HTTP Server (httpd) de la Apache Software Foundation. Apache presenta entre otras características altamente configurables, bases de datos de autenticación y negociado de contenido, pero fue criticado por la falta de una interfaz gráfica que ayude en su configuración.

4CV1 Equipo1 Servidor Documentacion

Embed Size (px)

DESCRIPTION

Servidor Web Apache

Citation preview

  • El servidor HTTP Apache es un servidor web HTTP de cdigo abierto, para plataformas Unix (BSD, GNU/Linux, etc.), Microsoft Windows, Macintosh y otras, que implementa el protocolo HTTP/1.12 y la nocin de sitio virtual. El servidor Apache se desarrolla dentro del proyecto HTTP Server (httpd) de la Apache Software Foundation. Apache presenta entre otras caractersticas altamente configurables, bases de datos de autenticacin y negociado de contenido, pero fue criticado por la falta de una interfaz grfica que ayude en su configuracin.

  • Existen diferencias importantes entre el Servidor Apache HTTP versin 2.0 y la versin 1.3 (la versin 1.3 vena con Red Hat Enterprise Linux 2.1 y versiones anteriores).

    Desarrollador Apache Software Foundation

    Informacin general Ultima Versin estable 2.4.9

    17 de marzo de 2014 Genero Servidor WEB Sistema operativo Multiplataforma Licencia Licencia Apache 2.0

    Los mdulos Apache API se utiliza un nuevo conjunto de interfaces de programacin de aplicaciones (APIs).

    Filtrado Los mdulos pueden actuar como filtros de contenido.

    Soporte a IPv6 Se soporta la prxima generacin de formato de direcciones IP.

    Directrices simplificadas Se han eliminado una serie de directrices complicadas y otras se han simplificado. Consulte la Seccin 10.5 para mayor informacin sobre directrices especficas

  • Respuestas a errores en diversos idiomas Cuando usa documentos Server Side Include (SSI), las pginas de errores personalizables se pueden entregar en diversos idiomas

    La licencia Apache (Apache License o Apache Software License para versiones anteriores a 2.0) es una licencia de software libre creada por la Apache Software Foundation (ASF). La licencia Apache (con versiones 1.0, 1.1 y 2.0) requiere la conservacin del aviso de copyright y el disclaimer, pero no es una licencia copyleft, ya que no requiere la redistribucin del cdigo fuente cuando se distribuyen versiones modificadas. Todo el software producido por la ASF o cualquiera de sus proyectos est desarrollado bajo los trminos de esta licencia. Adems algunos proyectos que no pertenece a la ASF tambin siguen la licencia Apache: en enero de 2007, ms de 1000 proyectos no pertenecientes a la ASF en SourceForge estaban disponibles bajo los trminos de la Licencia Apache. CONDICIONES Como cualquier otra de las licencias de software libre, la Licencia Apache permite al usuario del software la libertad de usarlo para cualquier propsito, distribuirlo, modificarlo, y distribuir versiones modificadas de ese software. La Licencia Apache no exige que las obras derivadas (versiones modificadas) del software se distribuyan usando la misma licencia, ni siquiera que se tengan que distribuir como software libre/open source. La Licencia Apache slo exige que se mantenga una noticia que informe a los receptores que en la distribucin se ha usado cdigo con la Licencia Apache. As, en contraste a las licencias copyleft, quienes reciben versiones modificadas de cdigo con Licencia Apache no reciben necesariamente las mismas libertades. O, si se considera la situacin desde el punto de vista de los licenciatarios de cdigo con Licencia Apache, reciben la libertad de usar el cdigo de la forma que prefieran, incluyendo su uso en productos de cdigo cerrado (cf Prrafo 4). Se deben aadir dos archivos en el directorio principal de los paquetes de software redistribuidos: LICENSE - Una copia de la licencia NOTICE - Un documento de texto, que incluye los "avisos" obligatorios del software presente en la distribucin.

  • EJEMPLOS DE SOFTWARE BAJO ESTA LICENCIA

    Android: Plataforma mvil libre, de cdigo abierto.

    Twitter Bootstrap coleccin de herramientas de software libre para la creacin de sitios y aplicaciones web.

    mod_perl - sitios web dinmicos con Perl (ltima versin 2.0.3)

    Apache Ant Herramienta de construccin basada en Java y XML (ltima versin 1.7.0)

    Apache Avalon (Proyecto cerrado, ms detalles)

    Arquitectura del servidor Apache.

    Arquitectura y mdulos de la implementacin Apache

    Arquitectura de un servidor web dinmico

  • Diagrama que muestra a detalle el funcionamiento de un servidor Apache

    Configuracin de un servidor Apache

  • COMANDOS

    RESPUESTAS

  • EL PROTOCOLO HTTP El Protocolo de Transferencia de HiperTexto (Hypertext Transfer Protocol) es un sencillo protocolo cliente-servidor que articula los intercambios de informacin entre los clientes Web y los servidores HTTP. La especificacin completa del protocolo HTTP 1/0 est recogida en el RFC 1945. Fue propuesto por Tim Berners-Lee, atendiendo a las necesidades de un sistema global de distribucin de informacin como el World Wide Web. Desde el punto de vista de las comunicaciones, est soportado sobre los servicios de conexin TCP/IP, y funciona de la misma forma que el resto de los servicios comunes de los entornos UNIX: un proceso servidor escucha en un puerto de comunicaciones TCP (por defecto, el 80), y espera las solicitudes de conexin de los clientes Web. Una vez que se establece la conexin, el protocolo TCP se encarga de mantener la comunicacin y garantizar un intercambio de datos libre de errores. HTTP se basa en sencillas operaciones de solicitud/respuesta. Un cliente establece una conexin con un servidor y enva un mensaje con los datos de la solicitud. El servidor responde con un mensaje similar, que contiene el estado de la operacin y su posible resultado. Todas las operaciones pueden adjuntar un objeto o recurso sobre el que actan; cada objeto Web (documento HTML, fichero multimedia o aplicacin CGI) es conocido por su URL.

  • FUNCIONAMIENTO Para profundizar ms en el funcionamiento de HTTP, veremos primero un caso particular de una transaccin HTTP; en los siguientes apartados se analizarn las diferentes partes de este proceso. Cada vez que un cliente realiza una peticin a un servidor, se ejecutan los siguientes pasos:

    Un usuario accede a una URL, seleccionando un enlace de un documento HTML o introducindola directamente en el campo Location del cliente Web.

    El cliente Web descodifica la URL, separando sus diferentes partes. As identifica el protocolo de acceso, la direccin DNS o IP del servidor, el posible puerto opcional (el valor por defecto es 80) y el objeto requerido del servidor.

    Se abre una conexin TCP/IP con el servidor, llamando al puerto TCP correspondiente.

    Se realiza la peticin. Para ello, se enva el comando necesario (GET, POST, HEAD,), la direccin del objeto requerido (el contenido de la URL que sigue a la direccin del servidor), la versin del protocolo HTTP empleada (casi siempre HTTP/1.0) y un conjunto variable de informacin, que incluye datos sobre las capacidades del browser, datos opcionales para el servidor,

    El servidor devuelve la respuesta al cliente. Consiste en un cdigo de estado y el tipo de dato MIME de la informacin de retorno, seguido de la propia informacin.

    Se cierra la conexin TCP.

    Este proceso se repite en cada acceso al servidor HTTP. Por ejemplo, si se recoge un documento HTML en cuyo interior estn insertadas cuatro imgenes, el proceso anterior se repite cinco veces, una para el documento HTML y cuatro para las imgenes. Diagrama de funcionamiento del protocolo HTTP

  • PROTOCOLO HTTPS HTTPS es el Protocolo Seguro de Transferencia de Hipertexto y est obviamente basado en el antes mencionado HTTP pero con la particularidad de utilizar un cifrado basado en la Secure Socket Layers mas conocidas como SSL y as crear un canal de transferencia cifrado con el que obviamente aumenta la seguridad en el trfico de informacin en comparacin al protocolo HTTP comn. Este protocolo HTTPS es usado por los entidades bancarias pues la informacin que manejan es de suma confidencialidad e importancia y por ello se necesita mantener cifrado el canal de transferencia. ltimamente se ha mejorado la seguridad no solo en servicios web bancarios sino en servicios que usuarios como nosotros usamos da a da como lo son nuestras cuentas de correo (Hotmail, Gmail, Yahoo Mail), nuestras cuentas hacia redes sociales como Twitter y Facebook entre otros sitios comunmente visitados por la mayora de la gente que navega por internet. Entonces cmo funciona el HTTPS? Pues es sencillo pues el navegador que estemos utilizando actua como la entidad que nos seala si el sitio que estamos visitando est correctamente cifrado y de ser as a nombre de quien est el certificado SSL antes mencionado por lo que estamos confiando en la informacin de seguridad que nos da nuestro navegador de internet y por lo tanto sabremos que no se trata de algn sitio falsificado que podra tratar de robar nuestros datos o credenciales por lo que entonces podramos concluir en la sentencia de que el protocolo HTTPS nos sirve para cifrar la transferencia de hypertexto y por lo tanto mejora nuestra seguridad y la de nuestros datos.

  • VENTAJAS

    Soporte Apache Web Server cuenta con una gran comunidad de usuarios de soporte. A diferencia de muchas compaas de software que se encargan de todo el soporte a los programas desde un solo lugar, el soporte tcnico de Apache se extiende a lo largo de mltiples localizaciones, empresas, y foros. Este modelo de distribucin del soporte permite a los usuarios obtener respuestas a preguntas tcnicas casi las 24 horas al da, no importa dnde se encuentren. Al ser de cdigo abierto, Apache est conectado a muchos usuarios que son capaces de crear parches y correcciones de errores tcnicos muy rpidamente. Tan pronto como se encuentra un problema, los usuarios de todo el mundo comunican y aportan soluciones. El resultado de este soporte de la comunidad es software que es muy estable y bien mantenido.

    Costo Una segunda ventaja relacionada con el diseo de cdigo abierto de Apache es su costo. El servidor web Apache es completamente gratuito y puede ser descargado por cualquier persona en el mundo. Por el contrario, la competencia, como la tecnologa de servidor web de Windows Server 2008 puede tener un costo mnimo de US$470, con un precio de ms de 1,000 dlares para las instalaciones ms avanzadas. Excepto en los casos en que ha sido una aplicacin especficamente diseada para competir con el servidor de Windows, utilizar el cdigo abierto Apache Web Server crea un ahorro sustancial. Esto es particularmente valioso para las pequeas empresas que estn lanzando nuevos programas de tecnologa, y no tienen grandes presupuestos para el servidor.

    Funcionalidad A pesar de su costo mnimo, Apache Web Server tiene un gran conjunto de funcionalidades de gran alcance. Estas caractersticas principales, junto con las extensiones creadas por programadores de todo el mundo, ayudan a que la plataforma Apache sea competitiva incluso frente a rivales de alto precio. Apache ha incorporado en su soporte a una amplia gama de lenguajes de programacin web, como Perl, PHP y Python. Estos lenguajes son fciles de aprender y se pueden utilizar para crear potentes aplicaciones en lnea. Apache tambin incluye soporte "SSL" y "TLS". Estos son los protocolos para enviar datos encriptados a travs de Internet, y son importantes en el desarrollo de tiendas seguras en lnea y otras aplicaciones que requieren privacidad.

    Multiplataforma Apache Web Server es muy portable. Esto significa que se puede instalar en una amplia variedad de servidores y sistemas operativos. Apache es capaz de ejecutarse en todas las versiones del sistema operativo UNIX. Linux es compatible, as como los sistemas operativos Windows NT y MacOS. En comparacin, el propio servidor de Microsoft Windows normalmente slo se puede instalar en sistemas operativos Windows. Desde un punto de vista de hardware, Apache puede ser utilizado en cualquier servidor con procesador de la serie Intel 80x86 cuando se combina con Windows. Si Apache est siendo utilizado en un sistema operativo Unix o Linux, casi cualquier tipo

  • de procesador es compatible. En general, Apache es uno de los sistemas de servidores ms adaptables disponibles en la actualidad, y se ejecutar en una amplia gama de entornos tcnicos.

    Apertura Apache Web Server es un software de cdigo abierto. Esto significa que la programacin que impulsa el software puede ser consultada y editada por cualquiera en el mundo. Este diseo abierto permite a cualquier programador crear una solucin personalizada basada en el programa ncleo de Apache, o ampliar las funciones del software. Muchas de estas extensiones personalizadas se han escrito y estn disponibles de forma gratuita. Si la funcin de medida perfecta no existe todava, se puede crear fcilmente. Al ser de cdigo abierto, Apache se actualiza constantemente. Muchos programadores de todo el mundo contribuyen constantemente con mejoras, que estn disponibles para cualquier persona que use el servidor web. El enfoque de cdigo abierto significa que los usuarios no tienen que esperar a que versiones completas del software sean liberadas. En su lugar, pequeas actualizaciones pueden ser instaladas tan pronto como estn disponibles. DESVENTAJAS

    Sobrecarga de datos de presencia Bajo algunas plataformas (varios sistemas SVR4) no hay forma de forzar al enlazador para que exporte todos los smbolos globales cuando se enlaza el programa ejecutable httpd. Pero sin la visibilidad de los smbolos del ncleo de Apache, ningn mdulo estndar de Apache podra ser usado como DSO. La nica posible solucin es compilar el sistema con la opcin SHARED_CORE porque de este modo los smbolos globales se fuerzan a ser exportados.

    Lento en algunos casos El servidor es aproximadamente un 20% ms lento en su arranque debido a la sobrecarga que la resolucin representa para el cargador (loader). El servidor es aproximadamente un 5% ms lento en su ejecucin bajo algunas plataformas porque el PIC (Position Independent Code, posicin de cdigo independiente) necesita maniobras complicadas para direccionamiento

  • Segn el sitio http://w3techs.com que proporciona informacin sobre el uso de diferentes tipos de tecnologas en

    la web. Ubica al servidor web Apache como el No. 1 en el mercado con un 58.5%.

    Informacin actualizada el da 3/01/2015.

    Con lo que podemos afirmar lo que presenta Apche en su sitio Oficial.

    http://w3techs.com/

  • COMPARATIVA

    Nombre Descripcin Caractersticas

    APACHE

    Est diseado para ser un Servidor Web potente y flexible que pueda funcionar en la ms amplia variedad de plataformas y entornos. Las diferentes plataformas y entornos, hacen que a menudo sean necesarias diferentes caractersticas o funcionalidades.

    Es gratuito, y de Cdigo abierto, as que podramos decir que corre sobre cualquier plataforma. Apache es una muestra, al igual que el Sistema Operativo Linux (un Unix desarrollado inicialmente para PC), de que el trabajo voluntario y cooperativo dentro de Internet es capaz de producir aplicaciones de calidad profesional difciles de igualar.

    MICROSOFT IIS

    Es el Servidor Web de Microsoft, el IIS (Internet Informatin Server), es el motor que ofrece esta compaa a modo profesional, con l es posible programar en ASP (Active Server Pages, Pginas de Servidor Activo) las cuales vienen a ser algo similares al PHP, este servidor posee componentes programables desde ASP accediendo a cada uno de sus mdulos para una funcin especfica.

    Este tipo de servidor lo llevan slo los sistemas Windows NT, por tanto aadimos Windows 2000 Professional, Windows 2000 Advanced Server, Windows XP Professional, los cuales traen las versiones 4.0, 5.0 y 5.1, no obstante en la versin del Windows .NET Server vendr la versin 6.0 (dicho sistema est en fase beta y que se puede descargar desde la misma sede de Microsoft, slo es necesario registrarse).

    SUN JAVA SYSTEM WEB

    SERVER

    Es un servidor Web de alto rendimiento, de escalabilidad masiva y seguro que ofrece contenido dinmico y esttico.

    Las caractersticas de virtualizacin de dominio, versatilidad de configuracin y seguridad robusta, brindan una mejor calidad de servicio.

    NGNIX

    Es un Servidor http y proxy inverso gratuito, de Cdigo abierto y de alto rendimiento, adems de ser Servidor proxy para IMAP y POP3.Este servidor est actualmente manejando entre el 1% y el 4% de todos los dominios globales.

    Es conocido por su estabilidad, su gran conjunto de caractersticas, una configuracin sencilla y por consumir pocos recursos. Como este servidor no provee actualmente de un adaptador directo para Merb, usted requerir utilizar un proxy reverso en Nginx con el fin de direccionar peticiones hacia uno o varios procesos Merb distintos.

    LIGHTTP

    Es un servidor Web para los Sistemas operativos Unix/Linux y Microsoft Windows. Este servidor tambin conocido como Lighty, es una alternativa para el Servidor de pginas Web Apache. Este servidor Web es otro de los ms ligeros que hay en el mercado.

    Est diseado para ser seguro, rpido (muy rpido a decir verdad), compatible con los estndares y flexible a la vez que esta optimizado para entornos en los cuales la velocidad es crtica. Su huella de memoria es muy pequea (en comparacin a otros servidores Web), una ligera carga en el CPU y su enfoque en velocidad hacen de lighttpd perfecto para servidores con demasiada carga.

  • Las implementaciones de Apache Web server son multiplataforma.

    Linux (x86, x86-64, PowerPC, y otras arquitecturas)

    Mac OS X (x86, x86-64)

    Microsoft Windows (x86, x86-64)

    DOS sistemas de tipo en el x86: MS-DOS, IBM PC-DOS, DR-DOS, FreeDOS, etc.

    Apache Web Server es el servidor web ms importante en el mercado es de cdigo abierto escrito en Lenguaje C, Forth y XML.

    Lenguaje C C es un lenguaje de programacin creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell como evolucin del anterior lenguaje B, a su vez basado en BCPL. Al igual que B, es un lenguaje orientado a la implementacin de Sistemas Operativos, concretamente Unix. C es apreciado por la eficiencia del cdigo que produce y es el lenguaje de programacin ms popular para crear software de sistemas, aunque tambin se utiliza para crear aplicaciones. Se trata de un lenguaje de tipos de datos estticos, dbilmente tipificado, de medio nivel pero con muchas caractersticas de bajo nivel. Dispone de las estructuras tpicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel. Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar cdigo en ensamblador con cdigo C o acceder directamente a memoria o dispositivos perifricos. La primera estandarizacin del lenguaje C fue en ANSI, con el estndar X3.159-1989. El lenguaje que define este estndar fue conocido vulgarmente como ANSI C. Posteriormente, en 1990, fue ratificado como estndar ISO (ISO/IEC 9899:1990). La adopcin de este estndar es muy amplia por lo que, si los programas creados lo siguen, el cdigo es portable entre plataformas y/o arquitecturas.

  • FORTH Forth o FORTH es un lenguaje de programacin y un ambiente de programacin para computadores ideado por Charles H. Moore y Elisabeth Rather entre los aos 1965 y 1970 en el National Radio Astronomy Observatory de Kitt Peak, Arizona. Su nombre es una contraccin de la palabra inglesa fourth, dado que sus creadores le consideraban destinado a la cuarta generacin de computadoras, pero la primera edicin del lenguaje fue preparada para un IBM 1130, que solo permita nombres con una longitud mxima de cinco letras; su nombre se qued ya para siempre en FORTH. Forth es deletreado a veces con todas las letras en maysculas siguiendo el uso acostumbrado durante los primeros aos, aunque el nombre no es un acrnimo. Inicialmente diseado para una aplicacin muy concreta, la astronoma (clculo de trayectorias de cuerpos en rbita, cromatografas, anlisis de espectros de emisin), ha evolucionado hasta ser aplicable a casi todos los dems campos relacionados o no con esa rama de la ciencia (clculos de probabilidad, bases de datos, anlisis estadsticos y hasta financieros). Posteriormente, un programa para la adquisicin automtica y continua de datos realizado en este lenguaje ha descubierto al menos la mitad de los cmulos interestelares conocidos en la actualidad. Forth es un lenguaje de programacin de computadoras procedimental, estructurado, imperativo, reflexivo, basado en pila y sin comprobacin de tipos. Forth ofrece tanto la ejecucin interactiva de comandos (hacindolo conveniente como shell para los sistemas que carecen de un sistema operativo ms formal) como la capacidad de compilar secuencias de comandos para la ejecucin posterior. Algunas implementaciones del Forth (usualmente las versiones tempranas o las escritas para ser extremadamente portable) compilan cdigo enhebrado (threaded code), pero muchas implementaciones de hoy generan cdigo de mquina optimizado como otros compiladores de lenguajes. Una de sus importantes caractersticas es la utilizacin de una pila de datos para pasar los argumentos entre las palabras, que son los constituyentes de un programa en Forth.

    XML XML, siglas en ingls de eXtensible Markup Language ('lenguaje de marcas extensible'), es un lenguaje de marcas desarrollado por el World Wide Web Consortium (W3C) utilizado para almacenar datos en forma legible. Deriva del lenguaje SGML y permite definir la gramtica de lenguajes especficos (de la misma manera que HTML es a su vez un lenguaje definido por SGML) para estructurar documentos grandes. A diferencia de otros lenguajes, XML da soporte a bases de datos, siendo til cuando varias aplicaciones deben comunicarse entre s o integrar informacin. XML es una tecnologa sencilla que tiene a su alrededor otras que la complementan y la hacen mucho ms grande y con unas posibilidades mucho mayores. Tiene un papel muy importante en la actualidad ya que permite la compatibilidad entre sistemas para compartir la informacin de una manera segura, fiable y fcil

  • REFERENCIAS:

    Apache HTTP Server 2.2 Official Documentation - Volume I. Server Administration, Volumen I. Apache Software Foundation. Fultus Corporation, 2010.

    Apache 2 Pocket Reference: For Apache Programmers & Administrators. Andrew Ford. O'Reilly Media, Inc.", 2008.

    Usage of web servers for Websites. [EN LINEA] Disponible en: http://w3techs.com/technologies/overview/web_server/all.

    The Apache Software Foundation. [EN LINEA]. Disponible en : http://www.apache.org/foundation/

    Brian W. Kernighan, Dennis M. Ritchie. El lenguaje de programacin C. Pearson

    Educacin, 1991 - 294 pginas

    REQUEST FOR COMMENTS

    RFC 5246- TLS protocol RFC 2616- HTTP/1.1 June 1999 RFC 6265- HTTP State Management Mechanism April 2011 RFC 7230- Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing

    June 2014 RFC 7231- Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content RFC 7232- Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests RFC 7233- Hypertext Transfer Protocol (HTTP/1.1): Range Requests RFC 7234- Hypertext Transfer Protocol (HTTP/1.1): Caching RFC 7335- Hypertext Transfer Protocol (HTTP/1.1): Authentication

    INTEGRANTES:

    Luis Alfredo Snchez Angeles

    Camarillo Hernndez Erick Alberto Cortez Resndiz Alexis

    Hiplito Tenorio Cristian

    http://w3techs.com/technologies/overview/web_server/all