Apache
-
Upload
noelia-lucia-ayala-dionicio -
Category
Documents
-
view
3 -
download
0
description
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