Вы находитесь на странице: 1из 19

Servidor Web

Qu es un servidor Web?
Un que atiende las
peticiones HTTP llegadas a un
puerto determinado de la mquina
Tambin se denomina as, por extensin,
a la mquina 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

33

Pginas estticas
Al principio, el Web estaba poblado nicamente por
pginas
El servidor Web simplemente localizaba el documento
solicitado en el URL y se lo entregaba al cliente

Este enfoque puede ser perfectamente vlido para


muchos sitios
Siempre y cuando no requieran actualizaciones
continuas

Pero no permitira, por ejemplo, crear un sitio de


comercio electrnico donde se pueda comprar, o
el de un banco
Es necesario acceder a datos en el servidor y crear
una pgina a peticin

Funcionamiento de las pginas


estticas
pagina.html
<html><head></head>
<body>
<h1>17/10/2005</h1>
</body>
</html>

En el navegador
se vera

17/10/2005

PDF Creator - PDF4Free v2.0

<html><head></head>
<body>
<h1>17/10/2005</h1>
</body>
</html>

http://www.pdf4free.com

34

Funcionamiento de las pginas


dinmicas
pagina.php

Motor
PHP

En el navegador
se vera

18/10/2005

<html><head></head>
<body>
<?php
printf(<h1>%s</h1>,
date(d/m/Y));
?>
</body>
</html>

<html><head></head>
<body>
<h1>18/10/2005</h1>
</body>
</html>

Modo de funcionamiento
El servidor Web detecta una peticin de una pgina
dinmica y se la pasa al programa necesario
Podra ser una extensin del servidor
O bien un programa completamente independiente

ste programa es quien sabe cmo interpretar el


cdigo de la pgina para devolver el HTML
apropiado
Diversas tecnologas
CGIs, ASP, JSP, Servlets, etc.

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

35

CGI
CGI fue la primera tecnologa
que permiti crear pginas
dinmicas, que realizaban algn
tipo de procesamiento en el lado
del servidor.

CGI: Common Gateway Interface


Es un estndar que permite el intercambio
de informacin entre servidores Web y
programas externos
As, mientras que un documento HTML es
esttico (un fichero de texto que no
cambia), un programa CGI permite
mostrar informacin dinmica, al
ejecutarse
Por ejemplo, puede hacer una consulta a una
base de datos ubicada en el servidor y mostrar
los resultados en HTML

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

36

Introduccin




HTTP

Cmo obtiene el programa los


datos necesarios?
Hay dos formas posibles en que el
servidor Web puede pasarle los
datos al programa CGI:
Mediante las variables de entorno
Mediante la entrada est
estndar ()

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

37

Variables de entorno
La tabla siguiente muestra alguna de las
variables de entorno:
(Puede verse una lista completa en
http://hoohoo.ncsa.uiuc.edu/cgi/env.html)
Variable

Descripcin

SERVER_NAME

QUERY_STRING

CONTENT_LENGTH

PATH_INFO

Acceder a las variables de entorno


La forma de acceder al contenido de dichas
variables desde el programa CGI vara
dependiendo del lenguaje en que haya sido
escrito
Por ejemplo, a continuacin se muestra cmo acceder
al valor de la variable SERVER_NAME en C y en Perl:

C
Perl

PDF Creator - PDF4Free v2.0

getenv("SERVER_NAME")
$ENV{'SERVER_NAME'}

http://www.pdf4free.com

38

Ejemplo
El siguiente programa CGI en Perl
muestra el valor de todas las
variables de entorno:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
foreach $key (keys %ENV) {
print "$key --> $ENV{$key}<br>";
}

Mantenimiento de la sesin

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

39

HTTP, protocolo sin estado


HTTP es un protocolo
Esto significa que para el servidor Web cada
peticin de una pgina es nica
No tendra forma de saber, por ejemplo, que ese
usuario acaba de aadir un producto a su
carrito, o si ya se valid o no, en qu punto del
proceso de compra se encuentra, etctera

Son necesarias alternativas software, por


tanto, que permitan simular el estado

Alternativas para mantener sesin


Algunas de las alternativas son:
Usar el objeto (o similar) provisto por los
entornos 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 de
usuario) y bases de datos
URL rewriting
rewriting
Etctera

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

40

Qu son las cookies?


Las cookies son pequeas porciones
datos que son almacenados
localmente por el navegador en
forma de pequeos ficheros de
texto
Cada vez que el cliente enva
informacin al servidor, incluye en
la peticin HTTP las cookies que
previamente haya guardado
provenientes de ese servidor

Detalles de implementacin
Segn la especificacin, un agente de
usuario (es decir, un navegador), debe
permitir al menos:
Un total de 300 cookies
Hasta 4 KB (4.096 bytes) por cookie
Al menos 20 cookies de un servidor dado

El navegador se encarga automticamente


de eliminar aqullas que hace ms tiempo
que no se utilizan cuando necesita
guardar nuevas cookies

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

41

Sintaxis
Cada cookie presenta la siguiente
sintaxis general:
=;
=;[expires=;
[expires=;path=;
path=;
domain=;
domain=;secure]
secure]

Lo nico obligatorio es que tenga un


nombre y un valor asociado; el
resto de atributos son opcionales
Aunque tambin se utiliza bastante el
atributo expires

Descripcin de los atributos


Un par
Por ejemplo: IDUsuario = 49;
expires
Hasta cundo ser vlida la cookie
Debe ir en este formato: Wdy,
Wdy, DDDD-MonMon-YYYY
HH:MM:SS GMT

Si no se dice nada, la cookie ser eliminada al


terminar la sesin

path

Es decir, al cerrar la ventana actual del navegador

El conjunto de directorios del servidor para los


que es vlida esta cookie (por omisin, ser el
raz /, es decir, todos)

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

42

Descripcin de los atributos (2)


domain
El servidor o nombre de dominio para el
que es vlida la cookie
Una cookie slo puede ser leda y
modificada desde el servidor y
directorio especificados en la cookie
cuando sta fue creada
secure
Es booleano; si est definido (si aparece
el atributo) deber haber una conexin
segura (https) para que la cookie sea
enviada

URL Rewriting
Consiste en incluir la informacin del
estado en el propio URL
//comprar.asp?paso=3&producto1=01992CX
&producto2=ZZ112230&producto3=HJ19X25
&producto2=ZZ112230&producto3=HJ19X25

No es de recibo en aplicaciones
serias
Un cliente puede iniciar dos o ms
sesiones simultneas, pginas tediosas
de programar, slo se puede usar el
mtodo GET, etc.

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

43

Ventajas del uso de cookies


Menor uso de los recursos del servidor

Los servidores sin estado no necesitan reservar


y mantener recursos para guardar el estado de
la sesin

Fcil escalabilidad y uso de clusters

Al no tener estado, cualquier servidor puede


atender a cualquier cliente
No hace falta que un cliente siempre sea
atendido por el mismo servidor, ni ningn tipo
de distribucin del estado entre servidores

La sesin del cliente podra sobrevivir a una


cada del servidor
Un reintento por parte del cliente con el mismo
URL suele funcionar

Inconvenientes del uso de cookies


Privacidad

Otros servidores podran leer informacin


almacenada en las cookies del cliente
No son vlidas para guardar nmeros de
tarjeta, contraseas y cosas por el estilo

Los datos pueden ser alterados

Un usuario podra modificar el fichero de una


cookie
Lo mismo ocurre con otros mecanismos de
cliente: URL, formularios, etc.

Aumenta el trfico por la red

El estado se transmite con cada peticin al


servidor

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

44

Inconvenientes del uso de cookies


Implementacin compleja
Mantener a mano el estado en el
cliente puede ser realmente complicado
si queremos hacerlo de manera robusta

Tamao de datos limitado


Tanto el tamao mximo permitido por
las cookies como la longitud mxima de
un URL pueden darnos problemas para
almacenar sesiones complejas

Servidores de aplicaciones

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

45

Qu es un servidor de aplicaciones?
Es un programa que provee la
para las aplicaciones Web
empresariales
Qu quiere decir esto?
Que los programadores van a poder dedicarse casi en
exclusiva a implementar la lgica del dominio, ya
que servicios de uso comn, como transacciones,
seguridad, persistencia, etc. ya son proporcionados
por el servidor Web
Se ha convertido en una pieza de software clave para
cualquier empresa dedicada al comercio electrnico
Es una capa intermedia (
) que se sita entre
el servidor Web y las aplicaciones y bases de datos
subyacentes

Visin general
Aplicacin
cliente

Aplicacin
cliente

Aplicacin
cliente

Servidor de aplicaciones

(Transacciones, mensajera, servicios Web)

SGBD

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

46

Motivacin
Comienzan a surgir cuando queda claro las
aplicaciones cliente/servidor no iban a ser
escalables a un gran nmero de usuarios
Debido a las caractersticas de los clientes pesados

Se haca necesario mover las reglas de negocio a


algn lugar intermedio entre los clientes y la
base de datos
Empezaron a surgir productos para hacer esa
tarea
Cada compaa los llamaba de una forma distinta
Servidores de transacciones, servidores de
aplicaciones

Misin
Los llamasen como los llamasen,
estaban diseados para gestionar
de forma centralizada el modo en
que los clientes deban conectarse a
la base de datos o a los servicios
con los que tenan que interoperar

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

47

Servicios proporcionados
Creacin y gestin de los componentes del
servidor
Por aquel entonces, basados en CORBA o COM

Equilibrado de carga
Transacciones
Seguridad
Acceso a datos

Servicios proporcionados

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

48

Gestin de la sesin
ElElservidor
servidorha
hade
deconservar
conservarinformacin
informacinentre
entrepeticiones
peticionesdel
delusuario
usuarioaalololargo
largode
delala
duracin
duracinde
deuna
unasesin
sesin

Como sabemos, HTTP es un protocolo sin sesin


No permite mantener una conexin abierta entre el
cliente y el servidor ms all de lo que dura la
transferencia del documento en cuestin

En cualquier aplicacin de comercio electrnico,


es necesario poder identificar al usuario a
travs de su navegacin por el sitio Web
Autenticacin, adicin de productos al carrito de la
compra, etc.

Gestin de la sesin (2)


La implementacin a mano se complicara
enormemente en el caso de contar con varios
servidores (equilibrado de carga)
La peticin de un usuario registrado en la mquina A
puede ser redirigida al servidor B

Lo lgico es que sea el servidor de aplicaciones


quien se encargue de gestionar la sesin
Adems, debera ser ms eficiente que si lo
programamos nosotros mismos

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

49

Equilibrado de carga
Los
Losservidores
servidoresde
deaplicaciones
aplicacionesproporcionan
proporcionanmecanismos
mecanismosde
deequilibrado
equilibradode
decarga
carga
(aspecto
(aspectoclave
clavepara
paralalaescalabilidad)
escalabilidad)

Por equilibrado de carga ( ) se


entiende la capacidad de repartir el
procesamiento entre distintos servidores

Las peticiones de los clientes se redirigen a la


mquina que ms desocupada se encuentre en ese
momento
Mejora de rendimiento de la aplicacin

No es tan sencillo como aadir una nueva mquina y


ya est
Adems de la escalabilidad, se consigue una mayor
tolerancia a fallos

Acceso a datos
Los servidores de aplicaciones proveen facilidades para
administrar conexiones a bases de datos relacionales
Oracle, SQL Server, DB2

Los componentes (las clases que implementan la lgica


del negocio) acceden a ellas de forma estndar
Independiente de la base de datos subyacente

Tambin suelen permitir acceder a otros tipos de fuentes


de datos:
Tales como distintos ERP (SAP, Vaan...), repositorios XML,
etc.
Los servidores de aplicaciones son tambin importantes, por
tanto, como mecanismo de integracin de sistemas
heredados

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

50

Pooling de conexiones
Abrir una conexin a una base de datos
suele ser un proceso costoso

No es viable abrir una nueva conexin por cada


consulta a la base de datos
Penalizara enormemente el rendimiento de la
aplicacin

Los servidores de aplicaciones suelen contar


con una serie de conexiones
permanentemente abiertas que distribuye
de forma transparente a los distintos
procesos
Se debera poder configurar el nmero de
conexiones abiertas, e incluso la poltica de
asignacin

Gestin transaccional
Transaccin:
Transaccin:secuencia
secuenciade
depasos
pasosque,
que,oose
seejecutan
ejecutantodos,
todos,oosisino
noelelsistema
sistema
queda
quedaen
enelelestado
estadooriginal
original

Son un elemento bsico de cualquier


aplicacin comercial
Evitan que haya informacin inconsistente

Sera complejsimo implementarlas a


mano
Con un servidor de aplicaciones que tenga
esta caracterstica, bastara con indicarle
dnde empieza y termina la transaccin
Encargndose l de deshacer los pasos
intermedios en caso de un error del sistema

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

51

Вам также может понравиться