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

Servicio

Word Wide web

3
INTRODUCCIN WWW (W )
World: El mundo, el planeta.
Wide: A lo ancho, por todo el mundo.
Web: Tela de araa. Red en el sentido de
malla. Red o malla que envuelve el mundo.
La Red Mundial. Se refiere a la red
mundial de ordenadores. El servicio ha
adoptado, por extensin, el nombre de la
red que lo soporta: Internet .

ELEMENTOS DEL SERVICIO WEB

LENGUAJE DE LOS DOCUMENTOS:


HTML. Hypertext Markup Language.
URL: Universal Resource Locator.
CLIENTES= Browsers. Visualizadores.
SERVIDORES. Sirven documentos.
PROTOCOLO: HTTP. Hyper Text Transfer
Protocol. HTTP/1.1 (Agosto 96)

ESCENARIO Web
CLIENTE Web

SERVIDOR Web

Interpreta el documento
y lo presenta en el formato
que permita el entorno
de usuario

DOCUMENTOS WEB (1)


http://www.zoo.com/~chita

Enlace a un fichero de sonido


El documento puede
tener msica de fondo
Enlaces a otros servidores web

puede ser una imagen sensible

FOTO

DOCUMENTOS WEB (2)

Zonas de texto
Eleccin en una lista
Eleccin entre opciones
Zonas de texto
Botn de envo

Botn de borrado

CONCEPTO DE URL
Universal Resorce Locator
Los hiperenlaces tienen dos partes:
El anchor, texto o grfico en el que se
pincha.
El URL, describe que hacer cuando se
activa el hiperenlace.

El URL describe el protocolo, el host, el


path donde est el documento y el
nombre del documento.

URLS
http://www.eui.upm.es
http://www.abc.es:80
news://upm.es
telnet://fenix.eui.upm.es
ftp://ftp.eui.upm.es

URLS Absolutos y Relativos


ABSOLUTO
mtodo-acceso://nombre-servidor[:puerto]/dir/fichero
http://concerto.eui.upm.es/~web/notas/notas.html

RELATIVO (PARCIAL)
Se asume el mismo mtodo de acceso, el mismo servidor,
el mismo path y directorio del documento donde aparece.
<A HREF=notas.html>A las notas</A>

CLIENTES WEB
En ellos reside toda la potencia de la
interpretacin de los documentos.
Caractersticas del entorno grfico.
Pueden interaccionar con varios tipos de servicios (web, gopher, ftp, news, mail...etc ).
Realizan cach de documentos.
Interpretan y ejecutan scripts y programas
independientes de la plataforma (java).
Pueden llamar a otras aplicaciones para
presentar ciertos documentos (AVI, MID...)

DESDE EL CLIENTE WEB


CGI

servidor
GOPHER

servidor
WEB

ghopher

CLIENTE

NNTP servidor

NEWS

servidor
FTP

Common
HTML Gateway
Interface
INFORMACIN

TIPOS DE CLIENTES WEB


Modo texto:
lynx (basado en modo carcter). Se maneja con
las flechas del teclado. Los enlaces se presentan
en modo video inverso.

Modo grfico:

Mosaic. El primer browser grfico.


Navigator
Explorer
Opera
Mozilla
Konqueror

EJEMPLO DE CLIENTE WEB


Barra de men
Herramientas
Barra de URL
Directorio

rea de documentos

Barra de estado

SERVIDOR WEB
Es un Simple Servidor de ficheros.
El puerto de escucha es el 80 (TCP).
Puede ejecutar programas o scripts
para servir de pasarela a otros recursos
Common Gateway Interface (CGI).
(Interactividad).
Posee un sistema de control de acceso
por tres niveles:
Dominio de Nombres, Usuario y/o Grupo.

httpd.conf (conf. principal)(1)


ServerType Standalone
#ServerType inetd
Port 80
Listen 192.168.2.8:80
StartServers 5
MaxServers 20
TimeOut 1200
User nobody
Group #-1

httpd.conf (conf. principal)(2)


ServerName nombre.dom1.dom2.es
ServerAdmin root@nombre.dom1.dom2.es
ServerRoot /usr/local/etc/httpd
ErrorLog logs/error_log
TransferLog logs/access_log
AgentLog logs/agent_log
RefererLog logs/referer_log
PidFile logs/httpd.pid

httpd.conf (conf. principal)(3)


TypesConfig /conf/mime.types
CoreDirectory /tmp
#KeepAlive on
#KeepAliveTimeout 10
<VirtualHost servidor.dom.com:80>
... ... ...
</VirtualHost>
En una misma IP varios nombres

control de acceso
*Directiva Directory : Una para cada
subdirectorio que se desee controlar.
<Directory /usr/local/etc/httpd/htdocs/dir1>
<Limit GET>
Order, deny, allow, y otras directivas
</Limit>
</Directory>
<Directory /usr/local/etc/httpd/htdocs/dir2>
...
</Directory>

access.conf (Bsico)
<Directory /usr/local/etc/httpd/cgi-bin>
Options Indexes FollowSymlinks
</Directory>
<Directory /usr/local/etc/httpd/htdocs>
Options Indexes FollowSymLinks
AllowOverride All
<Limit GET>
order allow,deny
allow from all
</Limit>
</Directory>

ACCESO POR EL DNS


Las directivas son:
order Orden de evaluacin de deny o
allow.
allow Define que host puede acceder al
directorio.
deny Define los host que tienen
denegado el
acceso al
directorio.

ACCESO INDIVIDUALIZADO
Se puede permitir o denegar el acceso
individual al Web por el mtodo de user
y password. (los usuarios no tienen
por que tener cuenta en la mquina).
# htpasswd [-c] .htpasswd username

.htpasswd ha de estar en un directorio


distinto al que se desea controlar el acceso

ACCESO INDIVIDUAL
<Directory /usr/local/etc/httpd/htdocs>
Options Indexes FollowSymLinks
AllowOverride
None
AuthUserFile /usr/local/etc/httpd/conf/.htpasswd
AuthGroupFile
/dev/null
AuthName
Acceso por palabra clave!
AuthType
Basic
<Limit GET>
require user nombre_usuario
# require
valid-user
</Limit>
</Directory>

dir.)
Igualmente se controla el acceso a un
subdirectorio poniendo en l un fichero
.htaccess con el siguiente contenido:

AuthUserFile /usr/local/etc/httpd/conf/.htpasswd
AuthGroupFile
/dev/null
AuthName
Acceso por palabra clave!
AuthType
Basic
<Limit GET>
require user username
</Limit>

ACC. POR GRUPOS


<Directory /usr/local/etc/httpd/htdocs>
Options Indexes FollowSymLinks
AllowOverride
None
AuthUserFile /usr/local/etc/httpd/conf/.htpasswd
AuthGroupFile /usr/local/etc/httpd/conf/.htgroup
AuthName
Acceso por palabra clave!
AuthType
Basic
<Limit GET>
require group nombre_de_grupo
</Limit>
</Directory>

.htgroup
Contenido del fichero .htgroup:
nombre_de_grupo: usuario1 usuario2 usuario3 ... usuarioN
Cada Usuario ha de estar registrado en .htpasswd

# htpasswd
# htpasswd
...
# htpasswd

.htpasswd
.htpasswd
...
...
.htpasswd

usuario1
usuario2
...
usuarioN

Control de acceso simultneo


Control de acceso simultneo por DNS y por acceso
individual o de grupo.
(Solo el grupo alumnos del dominio misti.com tienen
acceso)
<Limit GET>
order deny, allow
deny from all
allow from eui.upm.es
require group alumnos
</Limit>

DIRECTORIOS
PERSONALES
<Directory /home>
AllowOverride None
Options Indexes
......
</Directory>
<Directory /*/public_html*>
AllowOverride None
Options Indexes
......
</Directory>

SEGURIDAD EN EL SERVIDOR
Control de acceso por DNS
Es tan seguro como lo sea el DNS, si se
puentea el servicio DNS, se puentea el acceso.

Control de acceso por user y passwod


El acceso por user y password es poco fiable
pues la password se transmite por la red en
texto en claro (caracteres ASCII)

Common Gateway Interface


(CGI)
Puente de Interfaces Comunes.
Gateway: Ejecutable o script llamado
por el servidor Web, acepta parmetros
de entrada del servidor Web y genera
salidas hacia el servidor Web.
CGI: Es el mecanismo de
comunicacin entre el Gateway y el
Servidor Web.
Directorio: /cgi-bin/

INFORMACIN SIN CGIS


servidor
WEB
1
PETICIN

2
HTML
INFORMACIN

CLIENTE

INFORMACIN CON CGIS


CGI

servidor
WEB

1
PETICIN

5
HTML

CLIENTE

4 HTML

Common
Gateway
Interface
3
INFORMACIN

CGIS Y HTML
LOS CGIS QUE GENEREN SALIDA HTML HAN
DE ESCRIBIR LA SIGUIENTE LNEA

Content-type: text/html
HACIA stdout (la salida standard)
SEGUIDA DE DOS LNEAS EN BLANCO, ANTES
DE ENVIAR EL PRIMER <HTML>

FUNCIONAMIENTO CGIS
DOS MTODOS DE INVOCAR UN CGI:

GET

(El servidor recibe los parmetros pegados al URL)


Es til para pocos parmetros o cantidades
de datos pequeas.

POST (El servidor recibe los parmetros por la entrada


standard stdin )
til para cantidades masivas de datos o cuando los
parmetros son codificados.

CGIS CON MTODO GET


EL MTODO SE INVOCA EN EL DOCUMENTO.
Los datos se envan al servidor pegados al URL as:
http://nombrehost/cgi-bin/pruebacgi?parmetro1+parmetro2+...
Se adjuntan al URL con el signo ?, cada parmetro se separa del
siguiente con +
Los parmetros los extrae el CGI de la variable de entorno:

QUERY_STRING
S.Internet.T7. Daniel Calzada

34

CGIS CON MTODO POST


EL MTODO SE INVOCA EN EL DOCUMENTO
Los datos los extrae el servidor utilizando la entrada standard
Ejemplo con POST:
NOMBRE=Pepe+Lopez+Garcia&DIRECCION=c/+Alcala+28
El signo = separa cada parmetro de su valor y el signo + es
un sustituto de los blancos.
El CGI extraer:

NOMBRE
Pepe Lopez Garcia
DIRECCION c/ Alcala 28
S.Internet.T7. Daniel Calzada

35

VAR. DE ENTORNO CGIS


SERVER_SOFTWARE
GATEWAY_INTERFACE
SERVER_PORT
HTTP_ACCEPT
PATH_TRANSLATED
QUERY_STRING
REMOTE_ADDR
AUTH_TYPE
CONTENT_LENGTH

SERVER_NAME
SERVER_PROTOCOL
REQUEST_METHOD
PATH_INFO
SCRIPT_NAME
REMOTE_HOST
REMOTE_USER
CONTENT_TYPE

S.Internet.T7. Daniel Calzada

36

FORMULARIOS (1)

CAMPOS PARA
RELLENAR EN
EL CLIENTE
SU CONTENIDO
SER PROCESADO
POR UN CGI EN
EL SERVIDOR

S.Internet.T7. Daniel Calzada

37

FORMULARIOS (2)
<FORM METHOD=POST ACTION=/cgi-bin/pruebapost>
Introduce tu nombre:<INPUT TEXT NAME=NOMBRE SIZE=50>
<P>Elige un grupo de prcticas:
<CENTER><SELECT NAME=Grupo_practicas size=4 MULTIPLE>
<OPTION SELECTED> GRUPOA10
<OPTION> GRUPOA11
<OPTION> GRUPOA12
</SELECT>
Elige horario:<BR>
<INPUT TYPE=radio NAME=Horario VALUE=9_A_10 CHECKED>9 A 10
<INPUT TYPE=radio NAME=Horario VALUE=10_A_11>10 A 11
<INPUT TYPE=radio NAME=Horario VALUE=11_A_12>11 A 12 <BR><P>
Enva algn comentario que desees hacer:<BR>
<INPUT TYPE=submit VALUE=pulsa este boton para enviar tus datos>
<INPUT TYPE=reset VALUE=borrar></CENTER>
</FORM>
S.Internet.T7. Daniel Calzada

38

FORMULARIOS (3)
El ejecutable (cgi) ha de extraer los datos
de la entrada standard o de la variable de
entorno: QUERY_STRING.
Procesarlos
Generar un documento HTML al vuelo.
Enviar el documento a la salida standard:
stdout

S.Internet.T7. Daniel Calzada

39

Servidores de aplicaciones
Cliente Externo

Cliente Interno

Cliente Externo

Lgica de
Presentacin

Lgica de Negocio

S.Internet.T7. Daniel Calzada

Lgica de Datos

40

BALANCEO DE CARGA (1)


Tcnicas para portales con muchos
accesos concurrentes.
Una nica mquina se colapsa:
Repartir la carga entre varias mquinas

Eventualmente se aplican tcnicas de


alta disponibilidad.

S.Internet.T7. Daniel Calzada

41

BALANCEO DE CARGA (2)


Balanceo por el DNS:
Round Robin

Balanceadores especficos:
Mquinas dedicadas a repartir carga
Diversos algoritmos
Independencia del S.O. de los servidores
Conmutadores de cualquier capa: interfaz
de red, IP, transporte y aplicacin
NAT inverso
Seguridad: filtrado
Replicado de contenidos
S.Internet.T7. Daniel Calzada

42

BALANCEO DE CARGA (3)


IP pblica

INTERNET
IP privadas

Pool de servidores
cluster
S.Internet.T7. Daniel Calzada

43

LVS (Linux Virtual Server)


Balancea cualquier tipo de
servicio

S.Internet.T7. Daniel Calzada

44

Alta disponibilidad
s
esclavo

mon
heart beat
latido cardiaco

e
INTERNET
r
v
i
d
o
r
e
s

Direcciones
Ethernet (1)
idnticas

maestro

mon

Direcciones
Ethernet (2)
idnticas

Sistema de ficheros tolerante a fallos


S.Internet.T7. Daniel Calzada

45

FIN
S.Internet.T7. Luis Roman

46