Beruflich Dokumente
Kultur Dokumente
Apache
Enestecaptuloaprenders:
elconceptodeservidorwebysusfunciones.
elorigenyevolucindelservidorwebApache2ysuscaractersticasmasrelevantes.
elprotocoloHTTPcomoconjuntodenormasqueregulanelmecanismodeintercambiode
mensajesentreelservidorwebyelclienteweb(navegador).
autilizarlostiposMIMEparalainterpretacindelcontenidodelosarchivostransferidos
entreservidorycliente.
Materialcomplementario:
1 de 31
1.
Actividadesdelaunidad.ArchivoU1_Actividades.pdf
2.
Mapaconceptualdelcaptulo.ArchivoU1_mapaconceptual.png
3.
Glosariocompletodelcurso.Archivoglosario.pdf
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.
2.
3.
4.
2 de 31
Glosario
Fuentesdeinformacin
Resumenfinal
Autoevaluacin
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.
Unpasomasenlaseguridadproporcionadaporlosservidoreswebsebasaenelestablecimientodeconexionescifradasconel
navegador.Esteniveldeseguridadesbsico,porejemplo,paralastransaccionescomercialesrealizadasdesdeInternet.
3 de 31
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
5 de 31
Protocoloautilizar:http,https,ftp,ftps,...
//:hacelasvecesdeseparador
Servidor:esladireccinIPoelnombredelservidor(FQDN)quecontieneelrecurso.
Ruta_al_recurso:directorioysubdirectoriosdelsitiowebdondeestubicadoelrecurso
Recurso:recursoalquesequiereacceder.
PorlotantounaURLindicalaformadeaccederaunrecursoutilizandoundeterminadoprotocolodecomunicacin.
Porejemplo:laURLhttp://recursostic.educacion.es/observatorio/web/es/home
6 de 31
Apache
IIS
Essoftwarelibre
Essoftwarepropietario(Microsoft)
Esmodular
Esmodularapartirdelaversin6
UtilizadoenlosgrandesservidoresrazdeInternet
Utilizadoenentornoscorporativos
Evolucin
Lafigurasiguientemuestralaimplantacindediferentesservidoreswebysuevolucineneltiempo.
7 de 31
Percent Change
Apache
60.10
60.31
171,195,554
179,720,332
0.21
Microsoft
57,084,126
20.04
57,644,692
19.34
-0.70
14,454,484
5.07
15,161,530
5.09
0.01
1,953,966
0.69
1,796,471
0.60
-0.08
Lighttpd
8 de 31
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
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
11 de 31
12 de 31
13 de 31
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
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
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
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