Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Apache PDF
Apache PDF
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.
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.
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
5 de 31
Curso Mentor Apache
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
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
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
LaimplantacindecadaunodeellossepuedeverenlafiguradelepgrafeEvolucin.
ComprobarcomoelporcentajedeutilizacindeApacheesbastantesuperioraldeIIS.
Evolucin
Lafigurasiguientemuestralaimplantacindediferentesservidoreswebysuevolucineneltiempo.
7 de 31
Curso Mentor Apache
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.
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
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
10.SinlmitefijosobreelnmerodeAliasyredirecciones
Puedenserdeclaradasenlosarchivosdeconfiguracin.
11.Negociacindecontenido
El servidor proporciona a los clientes web de diferentes tipos los documentos con el
mejorniveldecalidadqueestosclienteswebpuedensoportar.
12.Hostsvirtualestambinllamadosservidoresmulti-alojados.
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
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.
http://150.185.75.30/atiwiki/index.php/PORTLETS
http://es.wikipedia.org/wiki/Java_Servlet
17 de 31