Está en la página 1de 19

Curso Mentor Apache

Apache
Unidad 1: Introduccin a Apache


Enestecaptuloaprenders:

elconceptodeservidorwebysusfunciones.
elorigenyevolucindelservidorwebApache2ysuscaractersticasmasrelevantes.
elprotocoloHTTPcomoconjuntodenormasqueregulanelmecanismodeintercambiode
mensajesentreelservidorwebyelclienteweb(navegador).
autilizarlostiposMIMEparalainterpretacindelcontenidodelosarchivostransferidos
entreservidorycliente.

Materialcomplementario:

1. Actividadesdelaunidad.ArchivoU1_Actividades.pdf
2. Mapaconceptualdelcaptulo.ArchivoU1_mapaconceptual.png
3. Glosariocompletodelcurso.Archivoglosario.pdf

1 de 31
Curso Mentor Apache

Introduccin
Objetivos

Conocerelconceptodeservidorwebyculessonsusfunciones.

Conocerlosservidoreswebmasimportantesy/omasutilizados.

EstudiarlascaractersticasmasrelevantesdelservidorwebApache.

ConocerelprotocoloHTTP,susfuncionesydiferentesversiones.

ConocerlostiposMIMEysusfunciones.

Conocimientos previos

Eslaprimeraunidady,porlotanto,norequieredelalumnoningnrequisitoprevio.nicamentetenerladisponibilidadnecesaria
paraadquirirlosconocimientostericosqueconstituirnlabasedetodoelcurso.
Aunquelaunidadparezcamuydensayconmuchainformacinvariada,esimportantequeseasimilecorrectamente.

Contenidos

Unidad1:IntroduccinaApache
A. Ubuntu y Windows

1. Quesunservidorweb?
1. ObjetivoyEsquemadefuncionamiento
2. Accesoalservidorweb
3. Comparativaentreservidoresweb
4. IntroduccinaApache2
5. Unpocodehistoria
6. CaractersticasgeneralesdelservidorApache2
7. Apache:servidorweb
8. ElprotocoloHTTP
9. TiposMIME

B. Fin de unidad

1. Glosario
2. Fuentesdeinformacin
3. Resumenfinal
4. Autoevaluacin

2 de 31
Curso Mentor Apache

Qu es un servidor web?
Definicin

Lawikipediadefineelservidorwebcomo:
UnprogramaqueimplementaelprotocoloHTTP(hypertexttransferprotocol).Esteprotocoloestdiseadoparatransferirloque
llamamos hipertextos, pginas web o pginas HTML (hypertext markup language): textos complejos con enlaces, figuras,
formularios,botonesyobjetosincrustadoscomoanimacionesoreproductoresdesonidos.

Arquitectura del servidor web

Laarquitecturautilizadaescliente/servidor,esdecir,elequipoclientehaceunasolicitudopeticinalequiposervidor,ysteatiende
dichasolicitud.
Enelequipoclienteseejecutaunaaplicacinllamada'navegadoroclienteweb'que:

sirvedeinterfazconelusuario:atiendesuspeticiones,muestralosresultadosdelasconsultasyproporcionaalusuario
unconjuntodeherramientasquefacilitansucomunicacinconelservidor.
secomunicaconelservidorweb:transmitelaspeticionesdelosusuarios.

Enelequiposervidorlanicatareaes:

atenderlaspeticionesrecibidasdesdelosnavegadoresoclienteswebyhacerlodeformaeficienteysegura.Estees
elcasodelosservidoreswebsegurosquesolicitanunnombredeusuarioyunacontraseaparapermitirelaccesosloa
usuariosregistradosyportanto,conpermisoparavisualizarlapgina/s.

Unpasomasenlaseguridadproporcionadaporlosservidoreswebsebasaenelestablecimientodeconexionescifradasconel
navegador.Esteniveldeseguridadesbsico,porejemplo,paralastransaccionescomercialesrealizadasdesdeInternet.

Saber ms ... sobre la arquitectura de un servidor web

Busca en la web informacin general sobre servidores web.

3 de 31
Curso Mentor Apache

Objetivo y Esquema
Objetivo del servidor web

Elobjetivodeunservidorwebesservirosuministrarpginaswebalosclienteswebonavegadoresquelassolicitan.
Ejemplo:

1. UnusuariodesdeelnavegadorFirefox,alhacer'click'sobreunenlaceaunapginawebestenviandounasolicitudal
servidorwebquealojadichapginaparaqueselamuestre(esosellamaservirlapgina).
2. Elservidorwebsilaencuentralaenvaysinolaencuentradevuelvealclienteunmensajedeerror.
3. ElclientecuandorecibelapginawebinterpretaelcdigoHTMLmostrandolasfuentes,colores,imgenesquela
componen,etc,deformacorrecta.

Pero el servidor web, adems de servir pginas web HTML estticas, tambin permite la ejecucin de una serie scripts en
diferenteslenguajesdeprogramacin,queproporcionandinamismoalaspginasweb.Estoslenguajesson:PHP,CGI,appletsde
Java,etc.

Esquema

Lafigurasiguientemuestraelesquemadefuncionamientodeunservidorweb.
Enellaobservamoslostreselementosbsicosquecomponenlaspeticioneswebdinmicas:

elclientequehacelapeticin
elservidorqueatiendelapeticin
ylosdatossolicitadosmediantelapeticin

4 de 31
Curso Mentor Apache

Saber ms ... sobre painas web

1. Para conocer mejor el concepto de pgina web puedes acceder a http://es.wikipedia.org/


2.Hayalgunadiferenciaentrepginawebysitioweb?
Enestareferenciahttp://www.masadelante.com/faqs/sitio-webpuedescomprobarladiferenciaentreambosconceptos.

5 de 31
Curso Mentor Apache

Acceso al servidor web


Acceso desde un navegador web

Paraqueelnavegadorpuedallegaralservidorweb(yaseaenunaredlocaloenInternet)elservidordebetenerasignadauna
direccinIP(InternetProtocol)nicaqueidentificaelequipoenlared.
Cuandoelnavegadorhaceunapeticindepginaalservidorwebutilizaunnombrequeidentificaalservidoryestasolicitudse
transmiteaunservidorDNS.steresuelveelnombreydevuelveladireccinIPquecorrespondealnombre.
Lasolicituddelnavegador,entonces,seencaminaalservidorwebcorrecto.
La informacin que el usuario proporciona al navegador para conectar con un servidor web se llama URL (Uniform Resource
Locators).
UnaURLdesolicituddeunrecursoconstade:

1. Protocoloautilizar:http,https,ftp,ftps,...
2. //:hacelasvecesdeseparador
3. Servidor:esladireccinIPoelnombredelservidor(FQDN)quecontieneelrecurso.
4. Ruta_al_recurso:directorioysubdirectoriosdelsitiowebdondeestubicadoelrecurso
5. Recurso:recursoalquesequiereacceder.

PorlotantounaURLindicalaformadeaccederaunrecursoutilizandoundeterminadoprotocolodecomunicacin.
Porejemplo:laURLhttp://recursostic.educacion.es/observatorio/web/es/home

Saber ms ... sobre algunos trminos

FQDN (Fully Qualified Domain Name, Nombrededominiototalmentecualificado) es un nombre que incluye el nombre del equipo y
el nombre del dominio asociado a esa mquina

6 de 31
Curso Mentor Apache

Comparativa entre servidores web


Comparativa

Existenmultituddeservidoresweb,perolosdosmasconocidoseimportantesporsusnivelesdeimplantacinsonApacheeIIS
(InternetInformationService).
Normalmente se asocia Apache a entornos Unix/GNU Linux (existen versiones de Apache para Windows) y IIS para entornos
Windows(noexistenversionesparaGNULinux).
Sinentrarendetallesdelascaractersticastcnicassepuededecirque:

Apache IIS

Essoftwarelibre Essoftwarepropietario(Microsoft)

Esmodular Esmodularapartirdelaversin6

UtilizadoenlosgrandesservidoresrazdeInternet Utilizadoenentornoscorporativos

Ejecutado desde un usuario diferente del superusuario root Ejecutadodesdeelpropiousuarioadministradordelsistema


delsistema hastalaversin6

LaimplantacindecadaunodeellossepuedeverenlafiguradelepgrafeEvolucin.
ComprobarcomoelporcentajedeutilizacindeApacheesbastantesuperioraldeIIS.

Evolucin

Lafigurasiguientemuestralaimplantacindediferentesservidoreswebysuevolucineneltiempo.

Developer February 2011 Percent March 2011 Percent Change

Apache 171,195,554 60.10 179,720,332 60.31 0.21

7 de 31
Curso Mentor Apache

Microsoft 57,084,126 20.04 57,644,692 19.34 -0.70

Google 14,454,484 5.07 15,161,530 5.09 0.01

Lighttpd 1,953,966 0.69 1,796,471 0.60 -0.08

Esta informacin actualizada, incluida la imagen, se puede obtener dehttp://news.netcraft.com/archives


/web_server_survey.html

8 de 31
Curso Mentor Apache

Introduccin a Apache2
Qu es Apache?

ElservidorHTTPApache2esunservidorwebdesoftwarelibredesarrolladoporlaApacheSoftwareFoundation
(ASF).Elproductoobtenidodeesteproyectoesunservidordecdigofuentecompleto,descargableygratuito.
Lapginawebdelproyectoeswww.apache.org.
Apache2esrobustoyconunciclodedesarrollomuyrpidograciasalagrancantidaddecolaboradoresvoluntariosde
quedispone.
Estambinunservidorestable,eficiente,extensibleymultiplataforma.

Estable:esunaconsecuenciadesuprobadarobustezqueimpidecadasocambiosenelservidorinesperados.
Flexible y eficiente:escapazde trabajarcon elestndarHTTP/1.1 (RFC2616)ycon la mayorparte de las
extensioneswebqueexistenenlaactualidad,comosonlosmdulosPHP,SSL,CGI,SSI,proxy,...
Extensible:disponedegrancantidaddemdulosqueamplansufuncionalidad.
MultiplataformayaqueestdisponibleparadiferentesplataformascomoGNU/Linux,Windows,MacOS.

Desdeelao1996eselservidormsutilizadoenInternetyeselutilizadoenlossistemasGNU/Linux.Enconcreto,a
fechadeMarzode2011msdel60%delossitioswebdeInternetutilizanApache.

Busca el significado de los trminos...

SSL (Secure Sockets Layer)


SSI (Server Side Includes)

9 de 31
Curso Mentor Apache

Un poco de historia
Origen de Apache

En los comienzos de Internet hablar de 'servicio web' se limitaba a la publicacin de pginas en formato HTML
utilizandoelprotocoloHTTPsobreredesTCTP/IP.
Al poco tiempo de la aparicin de la Web un grupo de personas del Centro Nacional de Actividades de
Supercomputacin(NationalCenterforSupercomputingActivities,NCSA)delaUniversidaddeIllinois,creunservidor
web(HTTPdNCSA)quefueelmsutilizadohasta1994.Suprincipaldesarrollador,RobMcCool,abandonelNCSAy
elproyecto.
Peroapartirdeaquelmomentovarioswebmasterscomenzaronadesarrollardiferentes'parches'paraelcdigofuente
deesteservidorymedianteelcorreoelectrnicosincronizabansusaportaciones.Deestaformaaparecielproyecto
Apache,cuyonombresedebea:
APAtCHyserver

La primeraversin que aparecede Apacheesla 0.6en Abrilde 1995,que tom como puntode partidalaversin
httpd1.3deNCSA.
El proyecto evolucion muy rpidamente y en l tambin colaboraron desarrolladores de NCSA. La versin 1.0
apareciendiciembrede1995.YenunaopasaserelservidorwebmsutilizadoenInternetanivelmundial.
En 1998 se lleg a un acuerdo con IBM que permiti que Apache funcionara tambin en plataformas Windows
convirtindoseasenunaalternativaalservidorIIS(InternetInformationServer).
Enestosmomentosseesttrabajandoconversiones2.2.X,aunquetodavamuchosservidoreswebenproduccin
utilizanlaltimaversinmsextendidaqueesla1.3.33.LaltimaversindeApacheesla2.2.17(Abril2011).
Serecomiendautilizarlaversin2.2yaqueincluyenuevasfuncionalidades(http://httpd.apache.org/docs/2.2/es/). La
pginacorrespondientealadocumentacinencastellanoeslaindicada.

Licencia de Apache

RespectoalalicenciadeApache2estndisponiblessustrminosenlaURLhttp://httpd.apache.org/docs/2.2/en/license.html.
Enresumensepuededecirque,lalicencia:
Permite:

Descargar y usar libremente el software de Apache2, total o parcialmente, de forma personal, desde la empresa con
objetivosinternosocomerciales.
UtilizarelsoftwaredeApache2enpaquetesodistribucionesquecreeelusuario.

Prohibe:

RedistribuirpartesdelsoftwareincluidoenApache2sinelpermisoadecuado.

Requiere:

IncluirunacopiadelalicenciaencualquierredistribucinqueelusuariopuedahacerqueincluyaelsoftwaredeApache2.
DecirclaramentequeApachepertenecealaASF(ApacheSoftwareFoundation)encualquierdistribucinqueincluyael
softwaredeApache.

Norequiere:

Incluir los fuentes del software de Apache propiamente, o de cualquier modificacin que el usuario haga sobre el, en
cualquierdistribucinenelquepuedaserincluido.

10 de 31
Curso Mentor Apache

EnviarloscambiosqueelusuariohacealsoftwarealaApacheSoftwareFoundation.

11 de 31
Curso Mentor Apache

Caractersticas generales del servidor Apache2


Caractersticas

Incluimos un resumen de las caractersticas generales del servidor Apache2. Es posible que de muchas de ellas ahora no se
entiendasusignificado,peroalolargodelcursoseirn'descubriendo'.

1.CumpleelestndarHTTP/1.1

NuevaversindelprotocoloHTTPqueampliasufuncionalidadsegnsedetallaenesta
unidad.

2.Configurableyextensiblemediantemdulos

ExistegrancantidaddemdulosdisponiblesparaApache2ypermitelacreacinde
nuevosmdulosporpartedeusuariosprogramadores.EnlaUnidad4sehabla
extensamenteacercadelosmdulos.

3.Proporcionaelcdigofuenteconlicenciasinrestricciones.

Esgratuito,peroantetodoescdigofuentelibre,locualpermitesaberentodo
momentoquestamosinstalando.

4.Multiplataforma

ExistenversionestantoparaWindowscomoparaGNU/Linux.Elcursocontemplalas
plataformasWindows7yGNU/LinuxUbuntu.

5.Continuaactualizacinydesarrollo.

Ungrupodedesarrolladoresestcontinuamenterevisandoycorrigiendotodoslosfallos
deseguridadygeneralesdelaherramientaquevansurgiendoentreversiones.

6.BasesdedatosDBMparaautenticacindeusuarios.

Permitenlaproteccindedocumentosmediantecontraseasparaunagrancantidadde
usuarios.

7.Permitecrearpginaswebprotegidas

Medianteconstraseasconunnmerograndedeusuariosautorizados,sinsobrecargar
elservidor.

8.Permitepersonalizarlasrespuestasaerroresyproblemasdelservidor.
9.MltiplesdirectivasDirectoryIndex

Ejemplo: DirectoryIndex index.html index.cgi


que indica al servidor que debe enviar index.html o ejecutar index.cgi cuando se
accedaaunaURLqueseaundirectorio.

10.SinlmitefijosobreelnmerodeAliasyredirecciones

Puedenserdeclaradasenlosarchivosdeconfiguracin.

11.Negociacindecontenido

El servidor proporciona a los clientes web de diferentes tipos los documentos con el
mejorniveldecalidadqueestosclienteswebpuedensoportar.

12.Hostsvirtualestambinllamadosservidoresmulti-alojados.

Esto permite al servidor distinguir entre peticiones hechas a diferentes direcciones


IP/:puerto nombres (mapeados a la misma mquina). En la Unidad 5 se habla
extensamenteacercadeloshostsvirtuales.

12 de 31
Curso Mentor Apache

13.Archivoslogsconfigurables

SepuedeconfigurarApache2paragenerarlogsenelformatoquesequiera.

13 de 31
Curso Mentor Apache

Actividades
Actividad 1.1

Quediferenciahayentresoftwarelibreysoftwaregratuito?
Esimportantediferenciarambostrminos.
Software libre (Free Software) es un software que se publica bajo la licencia GPL (General Public Licence) y debe cumplir los
siguientesrequisitos:

Poderejecutarloconcualquierpropsito.
Podercopiarloydistribuirlo.
Podermodificarloparaqueseadapteatusnecesidadesolasdeuntercero.
Podermejorarloypublicarlasmejorasparaayudaralacomunidad.

Ytodoestosiempreycuandonoseviolelalicencia,quedicequesepuedecopiar,distribuirymodificarsiemprequeserespetela
autoradelaversinoriginaldelaobra.
Porelsoftwarelibressepuedecobrar.Muchasempresaslohacen,comoRed-Hat,IBM,...EltminoFreehacereferenciaaesas
libertadesquehemosmencionadonoasugratuidad.
Masinformacinenhttp://www.fsf.org/

Software gratuito (llamado normalmente Freeware) puede ser distribuido comercialmentey puede incluir en ocasiones el cdigo
fuente. Pero este tipo de software no es libre en el mismo sentido que lo es el software libre propiamente, a menos que se
garanticentodaslaslibertades.
Existenmuchasmodalidadesdefreeware.Enhttp://www.desarrolloweb.com/articulos/2460.phphayunadescripcindealgunasde
ellas.
Para completar la actividad puedes buscar en la web definiciones para Software privativo, Open Source y Shareware.

14 de 31
Curso Mentor Apache

Apache: servidor web


Tipos de contenidos

Apacheproporcionacontenidosalclientewebonavegadorcomo:

Pginasestticas:eselmodomsbsicoyantiguo,perotambineselusomsgeneralizadoquesehacedeunservidor
web.DeestaformasetransfierenarchivosHTML,imgenes,etcynoserequiereunservidormuypotenteenloqueal
hardwareserefiere.
Pginasdinmicas:lainformacinquemuestranlaspginasquesirveApachecambiacontinuamenteyaqueseobtienea
partirdeconsultasabasesdedatosuotrasfuentesdedatos.Sonpginasconcontenidodinmico,cambiante.

Apachefacilitalageneracindeestetipodecontenidosyaque:

1. DisponedesoportedelprotocoloHTTP/1.1yademsmantienelacompatibilidadconHTTP/1.0.
2. Permite la ejecucin de scripts CGI (Common Gateway Interface) que son programas externos que se llaman desde el
propioservidorcuandounapginalonecesita.
3. ElCGIrecibeinformacindesdeelservidorygeneracomosalidaunapginawebdinmicaquesevisualizaenelcliente
web. Este script puede escribirse en cualquier lenguaje de programacin siempre que siga las reglas del interfaz CGI.
NormalmenteseutilizaPerl.Estetipodemecanismoyanoseutilizaprcticamenteysedesaconsejasuusoyaquelanza
unprocesoexternoalservidorwebporcadapeticindelclienteyseralentiza.Ensulugarseestnutilizandolosservlets.
4. Permite la creacin de hosts virtuales y de esa forma atender varios sitios web en distintos dominios desde la misma
mquina.
5. Permiterestringirrecursosadeterminadosusuariosogruposdistintosdelosdelsistema.
6. Permitelautilizacindemdulos,comoPHP ymod_perl,parasustituirlafuncionalidaddelosCGIs.Estosmdulosal
estarincluidosenApachenorequierenlaejecucindeunnuevoprocesoporcadapeticin.
7. ConsoporteparaSSL(SecureSocketsLayer)quepermiteencriptacindedatosyasaseguralaprivacidadyfiabilidadde
lacomunicacinweb.Utilizacriptografaasimtricaycertificadosdigitalesparaintercambiarunaclavedesesinsimtrica.
8. Servlets y JSP en Java. Esta opcin se utiliza en servidores de aplicaciones como Tomcat, Jboss, Oracle IAS,
WebSpheredeIBMoBEAWebLogic.Suventajaeslaescalabilidadylaportabilidad,yaquesepuededesarrollarenJavay
luegosepuedeejecutarencualquiermquinavirtualcompatible.

Arquitectura en capas

Unmodelomuyutilizadoenlaactualidadeseldelaarquitecturaencapas.Unaarquitecturaentrescapasutilizaunacapa:

1. depresentacinqueserlainterfazgrficaconlaqueinteractaelusuario.
2. paraelservidordeaplicacionesqueindicarcmoseejecutanlosprocesos(modelo).
3. paraguardarlosdatos(servidordebasesdedatos).

Estemodeloencapascontrastaconelmodeloclsicoenelquesloexisteunservidorwebyunclientewebonavegador.

15 de 31
Curso Mentor Apache

Lafiguraanteriormuestraelmodelodeservidorwebentrescapas.
Masinformacinsobrelaarquitecturaentrescapasenwww.mhproject.org.

Qu es un servlet?

SegnlaWikipedia(http://es.wikipedia.org/wiki/Java_Servlet)losservletssonobjetosquecorrendentrodelcontexto
deunservidorwebyextiendensufuncionalidad.Porejemplo,Tomcatsloesuncontenedordeservlets.
LosservletsseutilizanparamanejarpeticionesdeclienteHTTP.
Por ejemplo, tener un servlet procesando datos enviados mediante un formulario HTML con datos relativos a una
compraelectrnica.Esteservletformarapartedeunsistemadepagoson-linequeaccederaaunabasededatosde
productos.
Unservletesunprogramaqueseejecutaenunservidorwebynotieneinterfazgrfico.
Elusomscomndelosservletsesgenerarpginaswebdeformadinmicaapartirdelosparmetrosdelapeticin
queenveelnavegadorweb.
Otrousodelosservletsesreenviarpeticionesaotrosservidoresyservlets.
Esimportanteconocerladiferenciaentreservletyportlet.

16 de 31
Curso Mentor Apache

Actividades
Actividad 1.2

Diferenciaentreservletyportlet
Unservletesunprogramaqueseejecutaenunservidorweb. Elusomscomndelosservletsesgenerarpginaswebdeforma
dinmicaapartirdelosparmetrosdelapeticinqueenveelnavegadorweb.
LosservletssepuedenconsiderarquesonherederosdelosantiguosCGIs.Atiendenpeticionesdeuncliente.Porejemplo,un
servletpuedeserelresponsabledetomarlosdatosdeunformularioHTMLyenviarlosaunabasededatosparasuactualizacin.
LosportletssoncomponenteswebbasadosenJavaqueprocesanpeticionesygenerancontenidodinmico.Losportalesusan
portletscomocomponentesdeinterfazdeusuarioqueproveendeunacapadepresentacinalossistemasdeinformacin.
Lassimilitudesentrelosportletsylosservletsson:

LosportletsyservletssoncomponenteswebdeJ2EE.
Ambossonmanejadosporcontenedores,quecontrolansuciclodevidayinteraccin.
Cadaunogeneracontenidodinmicosiguiendolaestructurapeticin/respuesta.

Lasdiferenciasentreellossonlassiguientes:

Losportletsgeneranfragmentosdecdigomientrasquelosservletsgenerandocumentoscompletos.
Adiferenciadelosservlets,losportletsnovinculandirectamentealURL.
Losportletstienenunesquemadepeticinmascomplejo,condostiposdepeticin:ActionyRender.
Losportletsseadhierenalaestandarizacindeunconjuntodeestadosymodosquedefinensucontextodefuncionamiento
ylasreglasderenderizacin.

Ademslosportletspuedenhacerotrascosasquenolopuedenhacerlosservlets,como:

Losportletstieneunmecanismomuchomssofisticadoparaaccederyguardarlainformacindelaconfiguracin.
Losportletstienenaccesoalainformacindelosperfilesdelosusuariosmsalldelainformacinbsicayelrol
proporcionadoenlaespecificacindelservlet.
Losportletstienendosformasdiferentesparaguardarobjetosdentrodelasesin.

Algunascaractersticasquenotienelosportletsson:

Losportletsnopuedenalterarelencabezadohttpofijarlacodificacindelarespuesta.
NopuedenaccederalaURLqueelclienteutilizparainiciarlapeticinenelportal.

Mas informacin en:

http://150.185.75.30/atiwiki/index.php/PORTLETS
http://es.wikipedia.org/wiki/Java_Servlet

17 de 31

También podría gustarte