01. introduccion al web v2

19
33 Servidor Web ¿Qué es un servidor Web? Un que atiende las peticiones HTTP llegadas a un puerto determinado de la máquina También se denomina así, por extensión, a la máquina que cuenta con uno de tales programas Ejemplos de servidores Web: Apache Apache HTTP Server Project http://httpd.apache.org/ Internet Information Server (IIS) PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

Upload: pattysuarez

Post on 20-Nov-2015

218 views

Category:

Documents


3 download

DESCRIPTION

hh

TRANSCRIPT

  • 33

    Servidor Web

    Qu es un servidor Web?Un que atiende laspeticiones HTTP llegadas a unpuerto determinado de la mquinaTambin se denomina as, por extensin,a la mquina que cuenta con uno detales programas

    Ejemplos de servidores Web:Apache

    Apache HTTP Server Projecthttp://httpd.apache.org/

    Internet Information Server (IIS)

    PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

  • 34

    Pginas estticasAl principio, el Web estaba poblado nicamente por

    pginas El servidor Web simplemente localizaba el documentosolicitado en el URL y se lo entregaba al cliente

    Este enfoque puede ser perfectamente vlido paramuchos sitiosSiempre y cuando no requieran actualizacionescontinuas

    Pero no permitira, por ejemplo, crear un sitio decomercio electrnico donde se pueda comprar, oel de un bancoEs necesario acceder a datos en el servidor y crearuna pgina a peticin

    Funcionamiento de las pginasestticas

    17/10/2005

    17/10/2005

    En el navegadorse vera

    17/10/2005

    pagina.html

    PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

  • 35

    Funcionamiento de las pginasdinmicas

    18/10/2005

    18/10/2005

    En el navegadorse vera

    pagina.php

    MotorPHP

    Modo de funcionamiento

    El servidor Web detecta una peticin de una pginadinmica y se la pasa al programa necesarioPodra ser una extensin del servidorO bien un programa completamente independiente

    ste programa es quien sabe cmo interpretar elcdigo de la pgina para devolver el HTMLapropiado

    Diversas tecnologasCGIs, ASP, JSP, Servlets, etc.

    PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

  • 36

    CGI

    CGI fue la primera tecnologaque permiti crear pginasdinmicas, que realizaban algntipo de procesamiento en el ladodel servidor.

    CGI: Common Gateway Interface

    Es un estndar que permite el intercambiode informacin entre servidores Web yprogramas externos

    As, mientras que un documento HTML esesttico (un fichero de texto que nocambia), un programa CGI permitemostrar informacin dinmica, alejecutarsePor ejemplo, puede hacer una consulta a unabase de datos ubicada en el servidor y mostrarlos resultados en HTML

    PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

  • 37

    Introduccin

    HTTP

    Cmo obtiene el programa losdatos necesarios?

    Hay dos formas posibles en que elservidor Web puede pasarle losdatos al programa CGI:Mediante las variables de entornovariables de entornoMediante la entrada estentrada estndarndar ()

    PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

  • 38

    Variables de entornoLa tabla siguiente muestra alguna de lasvariables de entorno:(Puede verse una lista completa enhttp://hoohoo.ncsa.uiuc.edu/cgi/env.html)

    PATH_INFO

    CONTENT_LENGTH

    QUERY_STRING

    SERVER_NAME

    DescripcinVariable

    Acceder a las variables de entorno

    La forma de acceder al contenido de dichasvariables desde el programa CGI varadependiendo del lenguaje en que haya sidoescritoPor ejemplo, a continuacin se muestra cmo accederal valor de la variable SERVER_NAMESERVER_NAME en C y en Perl:

    $ENV{'SERVER_NAME'}Perlgetenv("SERVER_NAME")C

    PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

  • 39

    Ejemplo

    El siguiente programa CGI en Perlmuestra el valor de todas lasvariables de entorno:

    #!/usr/bin/perlprint "Content-type: text/html\n\n";foreach $key (keys %ENV) {print "$key --> $ENV{$key}";}

    Mantenimiento de la sesin

    PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

  • 40

    HTTP, protocolo sin estado

    HTTP es un protocolo Esto significa que para el servidor Web cadapeticin de una pgina es nicaNo tendra forma de saber, por ejemplo, que eseusuario acaba de aadir un producto a sucarrito, o si ya se valid o no, en qu punto delproceso de compra se encuentra, etctera

    Son necesarias alternativas software, portanto, que permitan simular el estado

    Alternativas para mantener sesin

    Algunas de las alternativas son:Usar el objeto (o similar) provisto por losentornos de programacin como ASP o J2EE(Servlets, JSP...)

    Almacenar toda la informacin de la sesin, a mano,en una (por ejemplo, mediante JavaScript)

    Una combinacin de (para guardar un ID deusuario) y bases de datos

    URL rewritingURL rewritingEtctera

    PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

  • 41

    Qu son las cookies?

    Las cookies son pequeas porcionesdatos que son almacenadoslocalmente por el navegador enforma de pequeos ficheros detexto

    Cada vez que el cliente envainformacin al servidor, incluye enla peticin HTTP las cookies quepreviamente haya guardadoprovenientes de ese servidor

    Detalles de implementacin

    Segn la especificacin, un agente deusuario (es decir, un navegador), debepermitir al menos:Un total de 300 cookies300 cookiesHasta 4 KB4 KB (4.096 bytes) porpor cookiecookieAl menos 20 cookies de un servidor20 cookies de un servidor dado

    El navegador se encarga automticamentede eliminar aqullas que hace ms tiempoque no se utilizan cuando necesitaguardar nuevas cookies

    PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

  • 42

    Sintaxis

    Cada cookie presenta la siguientesintaxis general:

    Lo nico obligatorio es que tenga unnombre y un valor asociado; elresto de atributos son opcionalesAunque tambin se utiliza bastante elatributo expiresexpires

    =; [expires=; path=;domain=; secure]=; [expires=; path=;domain=; secure]

    Descripcin de los atributos

    Un par Por ejemplo: IDUsuarioIDUsuario = 49;= 49;

    expiresHasta cundo ser vlida la cookie

    Debe ir en este formato: WdyWdy, DD, DD--MonMon--YYYYYYYYHH:MM:SSHH:MM:SS GMTGMT

    Si no se dice nada, la cookie ser eliminada alterminar la sesinEs decir, al cerrar la ventana actual del navegador

    pathEl conjunto de directorios del servidor para losque es vlida esta cookie (por omisin, ser elraz /, es decir, todos)

    PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

  • 43

    Descripcin de los atributos (2)

    domainEl servidor o nombre de dominio para elque es vlida la cookie

    Una cookie slo puede ser leda ymodificada desde el servidor ydirectorio especificados en la cookiecuando sta fue creada

    secureEs booleano; si est definido (si apareceel atributo) deber haber una conexinsegura (httpshttps) para que la cookie seaenviada

    URL Rewriting

    Consiste en incluir la informacin delestado en el propio URL

    ///comprar.asp?paso=3&producto1=01992CX/comprar.asp?paso=3&producto1=01992CX&producto2=ZZ112230&producto3=HJ19X25&producto2=ZZ112230&producto3=HJ19X25

    No es de recibo en aplicacionesseriasUn cliente puede iniciar dos o mssesiones simultneas, pginas tediosasde programar, slo se puede usar elmtodo GET, etc.

    PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

  • 44

    Ventajas del uso de cookies

    Menor uso de los recursos del servidorLos servidores sin estado no necesitan reservary mantener recursos para guardar el estado dela sesin

    Fcil escalabilidad y uso de clustersAl no tener estado, cualquier servidor puedeatender a cualquier clienteNo hace falta que un cliente siempre seaatendido por el mismo servidor, ni ningn tipode distribucin del estado entre servidores

    La sesin del cliente podra sobrevivir a unacada del servidorUn reintento por parte del cliente con el mismoURL suele funcionar

    Inconvenientes del uso de cookies

    PrivacidadOtros servidores podran leer informacinalmacenada en las cookies del clienteNo son vlidas para guardar nmeros detarjeta, contraseas y cosas por el estilo

    Los datos pueden ser alteradosUn usuario podra modificar el fichero de unacookie

    Lo mismo ocurre con otros mecanismos decliente: URL, formularios, etc.

    Aumenta el trfico por la redEl estado se transmite con cada peticin alservidor

    PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

  • 45

    Inconvenientes del uso de cookies

    Implementacin complejaMantener a mano el estado en elcliente puede ser realmente complicadosi queremos hacerlo de manera robusta

    Tamao de datos limitadoTanto el tamao mximo permitido porlas cookies como la longitud mxima deun URL pueden darnos problemas paraalmacenar sesiones complejas

    Servidores de aplicaciones

    PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

  • 46

    Qu es un servidor de aplicaciones?

    Es un programa que provee la para las aplicaciones Webempresariales

    Qu quiere decir esto?Que los programadores van a poder dedicarse casi enexclusiva a implementar la lgica del dominio, yaque servicios de uso comn, como transacciones,seguridad, persistencia, etc. ya son proporcionadospor el servidor Web

    Se ha convertido en una pieza de software clave paracualquier empresa dedicada al comercio electrnico

    Es una capa intermedia () que se sita entreel servidor Web y las aplicaciones y bases de datossubyacentes

    Visin general

    Servidor de aplicaciones(Transacciones, mensajera, servicios Web)

    Aplicacincliente

    Aplicacincliente

    Aplicacincliente

    SGBD

    PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

  • 47

    MotivacinComienzan a surgir cuando queda claro lasaplicaciones cliente/servidor no iban a serescalables a un gran nmero de usuariosDebido a las caractersticas de los clientes pesados

    Se haca necesario mover las reglas de negocio aalgn lugar intermedio entre los clientes y labase de datos

    Empezaron a surgir productos para hacer esatareaCada compaa los llamaba de una forma distinta

    Servidores de transacciones, servidores deaplicaciones

    Misin

    Los llamasen como los llamasen,estaban diseados para gestionarde forma centralizada el modo enque los clientes deban conectarse ala base de datos o a los servicioscon los que tenan que interoperar

    PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

  • 48

    Servicios proporcionados

    Creacin y gestin de los componentes delservidorPor aquel entonces, basados en CORBA o COM

    Equilibrado de cargaTransaccionesSeguridadAcceso a datos

    Servicios proporcionados

    PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

  • 49

    Gestin de la sesin

    Como sabemos, HTTP es un protocolo sin sesinNo permite mantener una conexin abierta entre elcliente y el servidor ms all de lo que dura latransferencia del documento en cuestin

    En cualquier aplicacin de comercio electrnico,es necesario poder identificar al usuario atravs de su navegacin por el sitio WebAutenticacin, adicin de productos al carrito de lacompra, etc.

    El servidor ha de conservar informacin entre peticiones del usuario a lo largo de laduracin de una sesinEl servidor ha de conservar informacin entre peticiones del usuario a lo largo de laduracin de una sesin

    Gestin de la sesin (2)

    La implementacin a mano se complicaraenormemente en el caso de contar con variosservidores (equilibrado de carga)La peticin de un usuario registrado en la mquina Apuede ser redirigida al servidor B

    Lo lgico es que sea el servidor de aplicacionesquien se encargue de gestionar la sesinAdems, debera ser ms eficiente que si loprogramamos nosotros mismos

    PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

  • 50

    Equilibrado de carga

    Por equilibrado de carga ( ) seentiende la capacidad de repartir elprocesamiento entre distintos servidoresLas peticiones de los clientes se redirigen a lamquina que ms desocupada se encuentre en esemomento

    Mejora de rendimiento de la aplicacinNo es tan sencillo como aadir una nueva mquina y

    ya estAdems de la escalabilidad, se consigue una mayor

    tolerancia a fallos

    Los servidores de aplicaciones proporcionan mecanismos de equilibrado de carga(aspecto clave para la escalabilidad)Los servidores de aplicaciones proporcionan mecanismos de equilibrado de carga(aspecto clave para la escalabilidad)

    Acceso a datos

    Los servidores de aplicaciones proveen facilidades paraadministrar conexiones a bases de datos relacionalesOracle, SQL Server, DB2

    Los componentes (las clases que implementan la lgicadel negocio) acceden a ellas de forma estndarIndependiente de la base de datos subyacente

    Tambin suelen permitir acceder a otros tipos de fuentesde datos:Tales como distintos ERP (SAP, Vaan...), repositorios XML,

    etc.Los servidores de aplicaciones son tambin importantes, por

    tanto, como mecanismo de integracin de sistemasheredados

    PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

  • 51

    Pooling de conexiones

    Abrir una conexin a una base de datossuele ser un proceso costosoNo es viable abrir una nueva conexin por cadaconsulta a la base de datosPenalizara enormemente el rendimiento de laaplicacin

    Los servidores de aplicaciones suelen contarcon una serie de conexionespermanentemente abiertas que distribuyede forma transparente a los distintosprocesosSe debera poder configurar el nmero deconexiones abiertas, e incluso la poltica deasignacin

    Gestin transaccional

    Son un elemento bsico de cualquieraplicacin comercialEvitan que haya informacin inconsistente

    Sera complejsimo implementarlas amano

    Con un servidor de aplicaciones que tengaesta caracterstica, bastara con indicarlednde empieza y termina la transaccinEncargndose l de deshacer los pasosintermedios en caso de un error del sistema

    Transaccin: secuencia de pasos que, o se ejecutan todos, o si no el sistemaqueda en el estado originalTransaccin: secuencia de pasos que, o se ejecutan todos, o si no el sistemaqueda en el estado original

    PDF Creator - PDF4Free v2.0 http://www.pdf4free.com