Apache

19

description

Información del servidor web apache

Transcript of Apache

  • ApacheUnidad 1: Introduccin a Apache

    Enestecaptuloaprenders:

    elconceptodeservidorwebysusfunciones.

    elorigenyevolucindelservidorwebApache2ysuscaractersticasmasrelevantes.

    elprotocoloHTTPcomoconjuntodenormasqueregulanelmecanismodeintercambiodemensajesentreelservidorwebyelclienteweb(navegador).

    autilizarlostiposMIMEparalainterpretacindelcontenidodelosarchivostransferidosentreservidorycliente.

    Materialcomplementario:

    Actividadesdelaunidad.ArchivoU1_Actividades.pdf1.Mapaconceptualdelcaptulo.ArchivoU1_mapaconceptual.png2.

    Glosariocompletodelcurso.Archivoglosario.pdf3.

    Curso Mentor Apache

    1 de 31

  • Introduccin

    Objetivos

    Conocerelconceptodeservidorwebyculessonsusfunciones.

    Conocerlosservidoreswebmasimportantesy/omasutilizados.

    EstudiarlascaractersticasmasrelevantesdelservidorwebApache.

    ConocerelprotocoloHTTP,susfuncionesydiferentesversiones.

    ConocerlostiposMIMEysusfunciones.

    Conocimientos previosEslaprimeraunidady,porlotanto,norequieredelalumnoningnrequisitoprevio.nicamentetenerladisponibilidadnecesariaparaadquirirlosconocimientostericosqueconstituirnlabasedetodoelcurso.

    Aunquelaunidadparezcamuydensayconmuchainformacinvariada,esimportantequeseasimilecorrectamente.

    ContenidosUnidad1:IntroduccinaApache

    A. Ubuntu y Windows

    Quesunservidorweb?ObjetivoyEsquemadefuncionamiento1.

    1.

    Accesoalservidorweb2.Comparativaentreservidoresweb3.IntroduccinaApache24.Unpocodehistoria5.CaractersticasgeneralesdelservidorApache26.Apache:servidorweb7.ElprotocoloHTTP8.TiposMIME9.

    B. Fin de unidad

    Glosario1.Fuentesdeinformacin2.Resumenfinal3.Autoevaluacin4.

    Curso Mentor Apache

    2 de 31

  • Qu es un servidor web?

    Definicin Lawikipediadefineelservidorwebcomo:

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

    Arquitectura del servidor web

    Laarquitecturautilizadaescliente/servidor,esdecir,elequipoclientehaceunasolicitudopeticinalequiposervidor,ysteatiendedichasolicitud.

    Enelequipoclienteseejecutaunaaplicacinllamada'navegadoroclienteweb'que:

    sirvedeinterfazconelusuario:atiendesuspeticiones,muestralosresultadosdelasconsultasyproporcionaalusuariounconjuntodeherramientasquefacilitansucomunicacinconelservidor.

    secomunicaconelservidorweb:transmitelaspeticionesdelosusuarios.

    Enelequiposervidorlanicatareaes:

    atenderlaspeticionesrecibidasdesdelosnavegadoresoclienteswebyhacerlodeformaeficienteysegura.Esteeselcasodelosservidoreswebsegurosquesolicitanunnombredeusuarioyunacontraseaparapermitirelaccesosloausuariosregistradosyportanto,conpermisoparavisualizarlapgina/s.

    Unpasomasenlaseguridadproporcionadaporlosservidoreswebsebasaenelestablecimientodeconexionescifradasconelnavegador.Esteniveldeseguridadesbsico,porejemplo,paralastransaccionescomercialesrealizadasdesdeInternet.

    Saber ms ... sobre la arquitectura de un servidor webBusca en la web informacin general sobre servidores web.

    Curso Mentor Apache

    3 de 31

  • Objetivo y Esquema

    Objetivo del servidor webElobjetivodeunservidorwebesservirosuministrarpginaswebalosclienteswebonavegadoresquelassolicitan.

    Ejemplo:

    UnusuariodesdeelnavegadorFirefox,alhacer'click'sobreunenlaceaunapginawebestenviandounasolicitudalservidorwebquealojadichapginaparaqueselamuestre(esosellamaservirlapgina).

    1.

    Elservidorwebsilaencuentralaenvaysinolaencuentradevuelvealclienteunmensajedeerror.2.ElclientecuandorecibelapginawebinterpretaelcdigoHTMLmostrandolasfuentes,colores,imgenesquelacomponen,etc,deformacorrecta.

    3.

    Peroel servidorweb, ademsde servir pginas webHTMLestticas, tambinpermite la ejecucindeuna serie scripts endiferenteslenguajesdeprogramacin,queproporcionandinamismoalaspginasweb.Estoslenguajesson:PHP,CGI,appletsdeJava,etc.

    EsquemaLafigurasiguientemuestraelesquemadefuncionamientodeunservidorweb.

    Enellaobservamoslostreselementosbsicosquecomponenlaspeticioneswebdinmicas:

    elclientequehacelapeticinelservidorqueatiendelapeticinylosdatossolicitadosmediantelapeticin

    Curso Mentor Apache

    4 de 31

  • 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.

    Curso Mentor Apache

    5 de 31

  • Acceso al servidor web

    Acceso desde un navegador webParaqueelnavegadorpuedallegaralservidorweb(yaseaenunaredlocaloenInternet)elservidordebetenerasignadaunadireccinIP(InternetProtocol)nicaqueidentificaelequipoenlared.

    CuandoelnavegadorhaceunapeticindepginaalservidorwebutilizaunnombrequeidentificaalservidoryestasolicitudsetransmiteaunservidorDNS.steresuelveelnombreydevuelveladireccinIPquecorrespondealnombre.

    Lasolicituddelnavegador,entonces,seencaminaalservidorwebcorrecto.

    La informacinqueelusuarioproporcionaalnavegadorparaconectarconunservidorwebse llamaURL (UniformResourceLocators).

    UnaURLdesolicituddeunrecursoconstade:

    Protocoloautilizar:http,https,ftp,ftps,...1.//:hacelasvecesdeseparador2.Servidor:esladireccinIPoelnombredelservidor(FQDN)quecontieneelrecurso.3.Ruta_al_recurso:directorioysubdirectoriosdelsitiowebdondeestubicadoelrecurso4.Recurso:recursoalquesequiereacceder.5.

    PorlotantounaURLindicalaformadeaccederaunrecursoutilizandoundeterminadoprotocolodecomunicacin.

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

    Saber ms ... sobre algunos trminosFQDN (Fully Qualified Domain Name, Nombrededominiototalmentecualificado) es un nombre que incluye el nombre del equipo yel nombre del dominio asociado a esa mquina

    Curso Mentor Apache

    6 de 31

  • Comparativa entre servidores web

    ComparativaExistenmultituddeservidoresweb,perolosdosmasconocidoseimportantesporsusnivelesdeimplantacinsonApacheeIIS(InternetInformationService).

    NormalmenteseasociaApacheaentornosUnix/GNULinux(existenversionesdeApacheparaWindows)y IIS paraentornosWindows(noexistenversionesparaGNULinux).

    Sinentrarendetallesdelascaractersticastcnicassepuededecirque:

    Apache IIS

    Essoftwarelibre Essoftwarepropietario(Microsoft)

    Esmodular Esmodularapartirdelaversin6

    UtilizadoenlosgrandesservidoresrazdeInternet Utilizadoenentornoscorporativos

    Ejecutadodesdeunusuariodiferentedelsuperusuario rootdelsistema

    Ejecutadodesdeelpropiousuarioadministradordelsistemahastalaversin6

    LaimplantacindecadaunodeellossepuedeverenlafiguradelepgrafeEvolucin.

    ComprobarcomoelporcentajedeutilizacindeApacheesbastantesuperioraldeIIS.

    EvolucinLafigurasiguientemuestralaimplantacindediferentesservidoreswebysuevolucineneltiempo.

    Developer February 2011 Percent March 2011 Percent ChangeApache 171,195,554 60.10 179,720,332 60.31 0.21

    Curso Mentor Apache

    7 de 31

  • Microsoft 57,084,126 20.04 57,644,692 19.34 -0.70Google 14,454,484 5.07 15,161,530 5.09 0.01Lighttpd 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

    Curso Mentor Apache

    8 de 31

  • Introduccin a Apache2

    Qu es Apache?ElservidorHTTPApache2esunservidorwebdesoftwarelibredesarrolladoporlaApacheSoftwareFoundation(ASF).Elproductoobtenidodeesteproyectoesunservidordecdigofuentecompleto,descargableygratuito.

    Lapginawebdelproyectoeswww.apache.org.

    Apache2esrobustoyconunciclodedesarrollomuyrpidograciasalagrancantidaddecolaboradoresvoluntariosdequedispone.

    Estambinunservidorestable,eficiente,extensibleymultiplataforma.

    Estable:esunaconsecuenciadesuprobadarobustezqueimpidecadasocambiosenelservidorinesperados.

    Flexible y eficiente: escapazdetrabajarconelestndarHTTP/1.1 (RFC2616)yconla mayorparte de lasextensioneswebqueexistenenlaactualidad,comosonlosmdulosPHP,SSL,CGI,SSI,proxy,...

    Extensible:disponedegrancantidaddemdulosqueamplansufuncionalidad.

    MultiplataformayaqueestdisponibleparadiferentesplataformascomoGNU/Linux,Windows,MacOS.

    Desdeelao1996eselservidormsutilizadoenInternetyeselutilizadoenlossistemasGNU/Linux.Enconcreto,afechadeMarzode2011msdel60%delossitioswebdeInternetutilizanApache.

    Busca el significado de los trminos...SSL (Secure Sockets Layer)SSI (Server Side Includes)

    Curso Mentor Apache

    9 de 31

  • Un poco de historia

    Origen de ApacheEn los comienzosde Internet hablar de 'servicio web' se limitaba a la publicacin de pginas en formato HTMLutilizandoelprotocoloHTTPsobreredesTCTP/IP.

    Al poco tiempo de la aparicin de la Web un grupo de personas del Centro Nacional de Actividades deSupercomputacin(NationalCenterforSupercomputingActivities,NCSA)delaUniversidaddeIllinois,creunservidorweb(HTTPdNCSA)quefueelmsutilizadohasta1994.Suprincipaldesarrollador,RobMcCool,abandonelNCSAyelproyecto.

    Peroapartirdeaquelmomentovarioswebmasterscomenzaronadesarrollardiferentes'parches'paraelcdigofuentedeesteservidorymedianteelcorreoelectrnicosincronizabansusaportaciones.DeestaformaaparecielproyectoApache,cuyonombresedebea:

    APAtCHyserver

    LaprimeraversinqueaparecedeApacheesla0.6enAbrilde1995,quetomcomopuntodepartidalaversinhttpd1.3deNCSA.

    El proyecto evolucion muy rpidamente y en l tambin colaboraron desarrolladores de NCSA. La versin 1.0apareciendiciembrede1995.YenunaopasaserelservidorwebmsutilizadoenInternetanivelmundial.

    En 1998 se lleg a un acuerdo con IBMque permiti que Apache funcionara tambin en plataformasWindowsconvirtindoseasenunaalternativaalservidorIIS(InternetInformationServer).

    Enestosmomentosseesttrabajandoconversiones2.2.X,aunquetodavamuchosservidoreswebenproduccinutilizanlaltimaversinmsextendidaqueesla1.3.33.LaltimaversindeApacheesla2.2.17(Abril2011).

    Serecomiendautilizarlaversin2.2yaqueincluyenuevasfuncionalidades(http://httpd.apache.org/docs/2.2/es/).Lapginacorrespondientealadocumentacinencastellanoeslaindicada.

    Licencia de ApacheRespectoalalicenciadeApache2estndisponiblessustrminosenlaURLhttp://httpd.apache.org/docs/2.2/en/license.html.

    Enresumensepuededecirque,lalicencia:

    Permite:

    Descargar y usar librementeel softwaredeApache2, total o parcialmente, de formapersonal, desde la empresa conobjetivosinternosocomerciales.

    UtilizarelsoftwaredeApache2enpaquetesodistribucionesquecreeelusuario.

    Prohibe:

    RedistribuirpartesdelsoftwareincluidoenApache2sinelpermisoadecuado.

    Requiere:

    IncluirunacopiadelalicenciaencualquierredistribucinqueelusuariopuedahacerqueincluyaelsoftwaredeApache2.

    DecirclaramentequeApachepertenecea laASF(ApacheSoftwareFoundation)encualquierdistribucinqueincluyaelsoftwaredeApache.

    Norequiere:

    Incluir los fuentes del softwaredeApachepropiamente, ode cualquiermodificacinqueel usuario haga sobreel, encualquierdistribucinenelquepuedaserincluido.

    Curso Mentor Apache

    10 de 31

  • EnviarloscambiosqueelusuariohacealsoftwarealaApacheSoftwareFoundation.

    Curso Mentor Apache

    11 de 31

  • Caractersticas generales del servidor Apache2 Caractersticas

    Incluimosun resumende lascaractersticasgeneralesdelservidorApache2. Esposiblequedemuchasdeellasahoranoseentiendasusignificado,peroalolargodelcursoseirn'descubriendo'.

    1.CumpleelestndarHTTP/1.1

    NuevaversindelprotocoloHTTPqueampliasufuncionalidadsegnsedetallaenestaunidad.

    2.Configurableyextensiblemediantemdulos

    ExistegrancantidaddemdulosdisponiblesparaApache2ypermitelacreacindenuevosmdulosporpartedeusuariosprogramadores.EnlaUnidad4sehablaextensamenteacercadelosmdulos.

    3.Proporcionaelcdigofuenteconlicenciasinrestricciones.

    Esgratuito,peroantetodoescdigofuentelibre,locualpermitesaberentodomomentoquestamosinstalando.

    4.Multiplataforma

    ExistenversionestantoparaWindowscomoparaGNU/Linux.ElcursocontemplalasplataformasWindows7yGNU/LinuxUbuntu.

    5.Continuaactualizacinydesarrollo.

    Ungrupodedesarrolladoresestcontinuamenterevisandoycorrigiendotodoslosfallosdeseguridadygeneralesdelaherramientaquevansurgiendoentreversiones.

    6.BasesdedatosDBMparaautenticacindeusuarios.

    Permitenlaproteccindedocumentosmediantecontraseasparaunagrancantidaddeusuarios.

    7.Permitecrearpginaswebprotegidas

    Medianteconstraseasconunnmerograndedeusuariosautorizados,sinsobrecargarelservidor.

    8.Permitepersonalizarlasrespuestasaerroresyproblemasdelservidor.

    9.MltiplesdirectivasDirectoryIndex

    Ejemplo: DirectoryIndex index.html index.cgique indica al servidor que debe enviar index.html o ejecutar index.cgi cuando seaccedaaunaURLqueseaundirectorio.

    10.SinlmitefijosobreelnmerodeAliasyredirecciones

    Puedenserdeclaradasenlosarchivosdeconfiguracin.

    11.Negociacindecontenido

    Elservidorproporcionaa losclienteswebdediferentes tipos losdocumentosconelmejorniveldecalidadqueestosclienteswebpuedensoportar.

    12.Hostsvirtualestambinllamadosservidoresmulti-alojados.

    Esto permite al servidor distinguir entre peticiones hechas a diferentes direccionesIP/:puerto nombres (mapeados a la misma mquina). En la Unidad 5 se hablaextensamenteacercadeloshostsvirtuales.

    Curso Mentor Apache

    12 de 31

  • 13.Archivoslogsconfigurables

    SepuedeconfigurarApache2paragenerarlogsenelformatoquesequiera.

    Curso Mentor Apache

    13 de 31

  • Actividades Actividad 1.1

    Quediferenciahayentresoftwarelibreysoftwaregratuito?

    Esimportantediferenciarambostrminos.

    Softwarelibre (FreeSoftware)esunsoftwarequesepublicabajo la licenciaGPL(GeneralPublicLicence)ydebecumplir lossiguientesrequisitos:

    Poderejecutarloconcualquierpropsito.Podercopiarloydistribuirlo.Podermodificarloparaqueseadapteatusnecesidadesolasdeuntercero.Podermejorarloypublicarlasmejorasparaayudaralacomunidad.

    Ytodoestosiempreycuandonoseviolelalicencia,quedicequesepuedecopiar,distribuirymodificarsiemprequeserespetelaautoradelaversinoriginaldelaobra.

    Porelsoftwarelibressepuedecobrar.Muchasempresaslohacen,comoRed-Hat,IBM,...EltminoFreehacereferenciaaesaslibertadesquehemosmencionadonoasugratuidad.

    Masinformacinenhttp://www.fsf.org/

    Softwaregratuito (llamadonormalmenteFreeware)puedeserdistribuidocomercialmenteypuede incluirenocasioneselcdigofuente. Peroeste tipodesoftwarenoes libre enelmismosentidoque loes el software librepropiamente, amenosquesegaranticentodaslaslibertades.

    Existenmuchasmodalidadesdefreeware.Enhttp://www.desarrolloweb.com/articulos/2460.phphayunadescripcindealgunasdeellas.

    Para completar la actividad puedes buscar en la web definiciones para Software privativo, Open Source y Shareware.

    Curso Mentor Apache

    14 de 31

  • Apache: servidor web

    Tipos de contenidosApacheproporcionacontenidosalclientewebonavegadorcomo:

    Pginasestticas:eselmodomsbsicoyantiguo,perotambineselusomsgeneralizadoquesehacedeunservidorweb.DeestaformasetransfierenarchivosHTML,imgenes,etcynoserequiereunservidormuypotenteenloquealhardwareserefiere.

    Pginasdinmicas:lainformacinquemuestranlaspginasquesirveApachecambiacontinuamenteyaqueseobtieneapartirdeconsultasabasesdedatosuotrasfuentesdedatos.Sonpginasconcontenidodinmico,cambiante.

    Apachefacilitalageneracindeestetipodecontenidosyaque:

    DisponedesoportedelprotocoloHTTP/1.1yademsmantienelacompatibilidadconHTTP/1.0.1.Permite laejecucindescriptsCGI(CommonGatewayInterface)quesonprogramasexternosquese llamandesdeelpropioservidorcuandounapginalonecesita.

    2.

    ElCGIrecibeinformacindesdeelservidorygeneracomosalidaunapginawebdinmicaquesevisualizaenelclienteweb. Estescript puedeescribirseencualquier lenguajedeprogramacinsiemprequesiga las reglasdel interfazCGI.NormalmenteseutilizaPerl.Estetipodemecanismoyanoseutilizaprcticamenteysedesaconsejasuusoyaquelanzaunprocesoexternoalservidorwebporcadapeticindelclienteyseralentiza.Ensulugarseestnutilizandolosservlets.

    3.

    Permite lacreacindehostsvirtualesydeesa formaatendervariossitioswebendistintosdominiosdesde lamismamquina.

    4.

    Permiterestringirrecursosadeterminadosusuariosogruposdistintosdelosdelsistema.5.Permite lautilizacindemdulos,comoPHPymod_perl, parasustituir la funcionalidadde losCGIs.EstosmdulosalestarincluidosenApachenorequierenlaejecucindeunnuevoprocesoporcadapeticin.

    6.

    ConsoporteparaSSL(SecureSocketsLayer)quepermiteencriptacindedatosyasaseguralaprivacidadyfiabilidaddelacomunicacinweb.Utilizacriptografaasimtricaycertificadosdigitalesparaintercambiarunaclavedesesinsimtrica.

    7.

    Servlets y JSP en Java. Esta opcin se utiliza en servidores de aplicaciones como Tomcat, Jboss, Oracle IAS,WebSpheredeIBMoBEAWebLogic.Suventajaeslaescalabilidadylaportabilidad,yaquesepuededesarrollarenJavayluegosepuedeejecutarencualquiermquinavirtualcompatible.

    8.

    Arquitectura en capas

    Unmodelomuyutilizadoenlaactualidadeseldelaarquitecturaencapas.Unaarquitecturaentrescapasutilizaunacapa:

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

    Estemodeloencapascontrastaconelmodeloclsicoenelquesloexisteunservidorwebyunclientewebonavegador.

    Curso Mentor Apache

    15 de 31

  • Lafiguraanteriormuestraelmodelodeservidorwebentrescapas.

    Masinformacinsobrelaarquitecturaentrescapasenwww.mhproject.org.

    Qu es un servlet?SegnlaWikipedia(http://es.wikipedia.org/wiki/Java_Servlet)losservletssonobjetosquecorrendentrodelcontextodeunservidorwebyextiendensufuncionalidad.Porejemplo,Tomcatsloesuncontenedordeservlets.

    LosservletsseutilizanparamanejarpeticionesdeclienteHTTP.

    Porejemplo, tenerun servlet procesando datosenviadosmediante un formulario HTMLcon datos relativosa unacompraelectrnica.Esteservletformarapartedeunsistemadepagoson-linequeaccederaaunabasededatosdeproductos.

    Unservletesunprogramaqueseejecutaenunservidorwebynotieneinterfazgrfico.

    Elusomscomndelosservletsesgenerarpginaswebdeformadinmicaapartirdelosparmetrosdelapeticinqueenveelnavegadorweb.

    Otrousodelosservletsesreenviarpeticionesaotrosservidoresyservlets.

    Esimportanteconocerladiferenciaentreservletyportlet.

    Curso Mentor Apache

    16 de 31

  • Actividades Actividad 1.2

    DiferenciaentreservletyportletUnservletesunprogramaqueseejecutaenunservidorweb.Elusomscomndelosservletsesgenerarpginaswebdeformadinmicaapartirdelosparmetrosdelapeticinqueenveelnavegadorweb.

    LosservletssepuedenconsiderarquesonherederosdelosantiguosCGIs.Atiendenpeticionesdeuncliente.Porejemplo,unservletpuedeserelresponsabledetomarlosdatosdeunformularioHTMLyenviarlosaunabasededatosparasuactualizacin.

    LosportletssoncomponenteswebbasadosenJavaqueprocesanpeticionesygenerancontenidodinmico.Losportalesusanportletscomocomponentesdeinterfazdeusuarioqueproveendeunacapadepresentacinalossistemasdeinformacin.

    Lassimilitudesentrelosportletsylosservletsson:

    LosportletsyservletssoncomponenteswebdeJ2EE.Ambossonmanejadosporcontenedores,quecontrolansuciclodevidayinteraccin.Cadaunogeneracontenidodinmicosiguiendolaestructurapeticin/respuesta.

    Lasdiferenciasentreellossonlassiguientes:

    Losportletsgeneranfragmentosdecdigomientrasquelosservletsgenerandocumentoscompletos.Adiferenciadelosservlets,losportletsnovinculandirectamentealURL.Losportletstienenunesquemadepeticinmascomplejo,condostiposdepeticin:ActionyRender.Losportletsseadhierenalaestandarizacindeunconjuntodeestadosymodosquedefinensucontextodefuncionamientoylasreglasderenderizacin.

    Ademslosportletspuedenhacerotrascosasquenolopuedenhacerlosservlets,como:

    Losportletstieneunmecanismomuchomssofisticadoparaaccederyguardarlainformacindelaconfiguracin.Losportletstienenaccesoalainformacindelosperfilesdelosusuariosmsalldelainformacinbsicayelrolproporcionadoenlaespecificacindelservlet.Losportletstienendosformasdiferentesparaguardarobjetosdentrodelasesin.

    Algunascaractersticasquenotienelosportletsson:

    Losportletsnopuedenalterarelencabezadohttpofijarlacodificacindelarespuesta.NopuedenaccederalaURLqueelclienteutilizparainiciarlapeticinenelportal.

    Mas informacin en:

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

    Curso Mentor Apache

    17 de 31

    12Completo.pdfAPACHE.pdfUnidad_1Unidad_2Unidad_3Unidad_4Unidad_5Unidad_6Unidad_7Unidad_8Unidad_9Unidad_10