Title: Introduccin a los servicios y servidores de informacin en Internet' Servidores de Informacin y Tecno
1Introducción a los servicios y servidores de
información en Internet. Servidores de
Información y Tecnologías Actuales
2Índice general
- Introducción a Servidores de Información.
- Tecnologías usadas en la parte Cliente.
- Html y JavaScript
- Applets
- Cookies
- Tecnologías usadas en la parte Servidor.
- CGI
- APIs
- ASP
- PHP
- Servlets
- JSP
- XML
3Introducción a los Servidores de Información
Índice
- URL, URI y URN
- Arquitectura del web
- El navegador (web browser)
- El servidor web
- Arquitectura de las aplicaciones web
- Apache
- ISS
- Páginas estáticas vs Páginas dinámicas
4Introducción a los Servidores de Información
URL,URI y URN
- URI identificador uniforme de recursos Es un
miembro del conjunto universal de nombres, en un
cierto espacio de nombres y con una dirección
referida a un cierto protocolo, ambos previamente
registrados. - URL
- Localizador Uniforme de Recursos Es
básicamente un caso particular de URI que expresa
una dirección, mapeada a un algoritmo de
recuperación del objeto que son protocolos de
comunicación a través de la red
5Introducción a los Servidores de Información
URL,URI y URN
- URN(Nombre Uniforme de Recurso) Sistema de
identificación de recursos cuya intención es
sustituir al sistema URI/URL. Es algo que aún
está en debate y que pretende definir un espacio
de nombres para etiquetar objetos persistentes. -
6Introducción a los Servidores de Información
Arquitectura del Web
- Para abrir una página en el navegador, se teclea
su URL o se utiliza un enlace a la misma - Una vez enviada esta petición y el servidor web
la ha recibido, éste localiza la página y la
envía de vuelta al navegador - Finalmente, el navegador muestra la página
7Introducción a los Servidores de Información El
navegador (web browser)
- El navegador es algo así como una interfaz de
usuario universal - Las responsabilidades del navegador consisten en
- Presentar el contenido de las páginas
- Realizar solicitudes a los servidores web
- Gestionar todos los resultados derivados de una
solicitud - En los últimos años se han producido grandes
avances en el mercado de los navegadores, debidos
básicamente a la batalla entre Netscape y
Microsoft - Así, por ejemplo, el navegador es capaz de
ejecutar aplicaciones en el mismo contexto que la
página que se está viendo Microsoft ActiveX y
applets de Java
8Introducción a los Servidores de Información El
servidor web
- El servidor web es el corazón de toda interacción
en el web - Se trata de un programa que se ejecuta en el
servidor y espera la llegada de peticiones,
sirviéndolas en el momento en que las recibe - Dependiendo del tipo de petición, el servidor web
puede buscar una página web o bien puede ejecutar
un programa - En cualquier caso, siempre devolverá algún tipo
de resultado al navegador que realizó la petición - En la actualidad, el servidor web Apache es el
más popular, debido a que se proporciona como
software libre y está disponible en múltiples
plataformas - Sin embargo el IIS también ha adquirido
relevancia, debido a que viene con el S.O Windows
9Introducción a los Servidores de Información
Arquitectura de las aplicaciones web
- Una aplicación web sigue, típicamente, un modelo
de 3 niveles - El primer nivel es la capa de presentación que
incluye el navegador y el servidor web - El segundo nivel es la capa de aplicación y toma
la forma de un programa - El tercer nivel proporciona al segundo los datos
que necesita
10Páginas estáticas vs. Páginas Dinámicas
- Páginas Web estáticas
- Una vez cargadas en el cliente (navegador) su
contenido es inalterable. - No tienen interactividad con el usuario
- Su objetivo Compartir información por la red.
11Páginas estáticas vs. Páginas Dinámicas (cont.)
- Páginas Web dinámicas
- Surgen debido a la necesidad de dotar más
dinamismo a la red. - Su contenido se modifica de forma autónoma o
debido al resultado de la interacción con el
usuario - Ejemplo El usuario desea saber el significado de
una palabra. Lo que hace es introducir la palabra
a buscar en un formulario y posteriormente en la
página siguiente recibe el significado de esa
palabra. - En el servidor se arranca un script o programa
que busca en la base de datos la palabra a buscar
y construye una página Web con el significado de
la palabra y devuelve dicha página.
12Introducción a los Servidores de Información
Apache
- Instalación
- Configuración del modo de funcionamiento.
- Configuración de un sitio Web .
- Seguridad de un sitio
- Capacidad SSL
13Apache Instalación(I)
- www.apache.org
- Se pueden bajar los binarios (.exe)
- Versión que vamos a utilizar Apache 1.3.23
- Fuentes y compilarlos en Windows
- Ayuda para hacerlo en http//www.glin.com.mx/apach
e/windows.htm - Requerimientos de instalación
- Tener instalado el TCP/IP
- Si se instala en Windows 95 tener el Winsock2
14Apache Instalación(II)
- Pantallas determinantes
- Instalar como servicio o arrancar
manualmente(crear acceso directo) - Tipo de Instalación
- Custom Instala la documentación y/o los binarios
- Completa Instala la documentación y los binarios
(requiere más espacio) - Sitio donde quieres instalarlo (donde tengas
espacio)
15Apache Configuración del modo de funcionamiento
- Arrancarlo
- Como servicio
- Manualmente desde la consola
- Pararlo
- Apache k Shutdown
- También se puede cerrar la ventana, pero no es
conveniente ya que pueden quedar transacciones
sin terminar. - Probar su funcionamiento
- http//nombreequipo
16Apache Configuración de un Sitio
Web(I)Estructura de Carpetas
- Bin Carpeta donde guarda .exe. Por ejemplo
htpasswd.exe crea un usuario. - Cgi-bin Lugar donde guardamos los cgis.
- Conf Contiene los ficheros de configuración
- Icons Guarda las imágenes de nuestras páginas
Web. - Logs guarda ficheros de información
- Modules Carpeta con módulos que se añaden al
Apache.
17Apache Configuración de un Sitio
Web(II)Ficheros de Configuración
- Hay tres ficheros
- Access.conf (No se usa)
- Srm.conf(No se usa)
- Httpd.conf (tiene lo de los dos anteriores)
- Cuando se modifica algún fichero de configuración
se hace una copia de él en los .default
18Apache Configuración de un Sitio Web(II)
- Directivas del fichero httpd.conf
- ServerName Nombre con el cual los clientes
referencian al servidor Web - ServerRoot Directorio raiz a partir del cual el
servidor busca el fichero de configuración, de
errores y de log. - DocumentRoot Directorio en el cual el servidor
busca los documentos html que el cliente
solicita. - Alias Sobrenombre que ponemos a una ruta de
nuestro sitio Web y que añadimos al final de la
URL
19Apache Configuración de un Sitio Web(III)
- Creación del alias InteliRed
- Directiva a buscar
- ltIfModule mod_alias.cgt
- Alias sobrenombre ruta
- Alias /InteliRed/ "C/serWeb/htdocs/
- Permisos de la carpeta
- ltDirectory "C/serWeb/htdocs"gt
- Options Indexes FollowSymlinks MultiViews
- AllowOverride None
- Order allow,deny
- Allow from all
- lt/Directorygt
20Apache Seguridad de un Sitio Web(I)
- SSL es una especificación para la definición de
canales seguros sobre TCP. - Objetivo principal de SSL Realizar conexiones
seguras a servidores WWW que permitieran enviar
números de tarjetas de crédito a través de un
formulario - SSL se compone de dos capas
- La capa de más bajo nivel (SSL Record Protocol)
Encapsula los protocolos de nivel más alto - La capa segunda (SSL Handshake) Negocia los
algoritmos de encriptación, así como la
autentificación entre el cliente y el servidor.
21Apache Seguridad de un Sitio Web(II)
- Técnicas Criptográficas
- Algoritmos Criptográficos
- Convencionales o criptografía simétricaSólo (y
nadie más) el emisor y receptor tienen la clave
secreta con la que se pueden leer el mensaje.
Problema Hay que elegir una clave antes de
comunicarse. - Criptografía por clave pública o Criptografía
asimétrica Una clave se utiliza para encriptar
el mensaje y otra para desencriptarlo.
Cualquiera puede encriptar el mensaje utilizando
la clave pública, pero sólo el propietario de la
clave privada puede leerlo. - Resumen de Mensajes Crear un resumen conciso del
mensaje a enviar y enviarlo junto al mensaje. En
la recepción, el receptor crea su propio resumen
y lo compara con el recibido. Si ambos son
iguales, el mensaje recibido está intacto.
22Apache Seguridad de un Sitio Web(II) Cont.
- Técnicas criptográficas (cont)
- Firmas digitales El emisor firma el mensaje de
manera que el receptor se asegura que el mensaje
es del emisor y no de otra persona. - Certificados Aseguran que el emisor y receptor
se han comunicado. El emisor necesita saber que
la clave pública que está utilizando se
corresponde con la clave privada del receptor.
Además el receptor ha de asegurarse que quien
envía el mensaje es el emisor. Cada parte poseé
un certificado que valida la identidad del otro,
confirma la clave pública, y el certificado está
firmado por una agencia fiable. Las agencias
fiables se les denominan Autoridad Certificadora
23Apache Capacidad SSL(I)
- Dos manera de añadir SSL al Apache
- Apache-SSL creado por Ben Laurie
- Mod_ssl Creado por Ralf S. Engelschall y deriva
del Apache-SSL. Este módulo se puede utilizar
libremente. Proporciona una fuerte criptografía
para el Apache, a través de los protocolos SSL y
TSL que usan la librería OpenSSL. - OpenSSL librería que utilizaremos para crear el
certificado de nuestro sitio.
24Apache Capacidad SSL(II) Mod_ssl
- Pasos para la instalación del módulo mod_ssl
- Cambiar los siguientes parámetros del archivo
pathdelapache\conf\httpd.conf - Port 443
- Listen 80
- Listen 443 (443Puerto en el que escucha el
servidor las peticiones seguras). - ServerName nombredelequipo
- Hacer una copia del fichero httpd.conf
- Probar http//nombreservidor443
- Descomprimir el archivo Apache_1.3.23-Mod_SSL_2.8.
6-OpenSSL_0.9.6c-WIN32.zip - Sobreescribe algunos ficheros , entre ellos el
httpd.conf. - Copiar los archivos ssleay32.dll y libeay32.dll
del directorio Apache\openssl\bin al directorio
WINNT\system32 si el S.O es Windows 2000 o NT
25Apache Capacidad SSL(III) Mod_ssl
- Creación de Certificado Seguir los pasos
siguientes - Creación de certificado de requisición de firma y
una clave privada - Openssl req config openssl.cnf new out
nombreservidor.csr - Hay que contestar una serie de preguntas como el
nombre, organización, etc. - Borrar la contraseña de la clave privada creada
en el paso anterior - Openssl rsa in privkey.pem out
nombreservidor.key - Creación de certificado (casero). Este
certificado no tiene validez oficial. Ha de
instalarse en los equipos que quieran utilizarlo. - Openssl x509 in nombreservidor.csr out
nombreservidor.cert req signkey
nombreservidor.key days 365
- Crear la carpeta path Apache\conf\ssl y mover
los archivos nombreservidor.key y miservidor.cert
en él.
Duración en días del certificado
26Apache Capacidad SSL(IV) Mod_ssl
- Configuración Apache mod_ssl Pasos
- Si el Apache está arrancado , hay que pararlo!
- Coger la copia del fichero httpd.conf que se hizo
en un paso anterior y renombrarla con httpd.conf. - Localizar la directiva LoadModule del httpd.conf
y añadir al final de los existentes - LoadModule ssl_module modules/mod_ssl.so
- Localizar la directiva ClearModuleList del
httpd.conf y añadir al final de las existentes - AddModule mod_ssl.c
27Apache Capacidad SSL(V) Mod_ssl
- Añadir la final del fichero
- //para más información acerca de las directivas
- //que vienen a continuación en www.modssl.org
- SSLMutex sem
- SSLRandomSeed startup builtin
- SSLSessionCache none
- SSLLog logs/ssl.log
- SSLLogLevel info
- ltVirtualHost pcipuerto443gt
- SSLEngine on
- SSLCertificateFile conf/ssl/pcipuerto.cert
- SSLCertificateKeyFile conf/ssl/pcipuerto.key
- lt/VirtualHostgt
Nombre servidor
28Apache Capacidad SSL(VI) Mod_ssl
- Funcionamiento
- Arrancar el apache.
- Poner https\\nombreservidor en la barra de
dirección del navegador - Resultado
29Apache Capacidad SSL(VII) Mod_ssl
- Si en la pantalla anterior pulsamos el tercer
botón, podemos ver el certificado que hemos
creado
- Si pulsamos en Instalar Certificado, el
certificado se instalará en nuestra máquina
cliente en el Almacén de Certificados que tiene
por defecto (si no se le indica lo contrario) y
que se denomina Entidades Emisoras de
Certificados de raíz de Confianza. - Para ver certificados Instalados y las Entidades
de Confianza en nuestra máquina cliente - Abrir Navegador
- EscogerHerramientasgtOpcionesgtContenidogtCertificad
osgt Entidades Emisoras de Certificados de raíz de
Confianza. - Aparece una lista en la que ha que aparece el
nombre del certificado.
30Jakarta-TomcatTipos de Configuración
- Qué es ?
- Es un servidor de páginas dinámicas . También se
le puede añadir seguridad. - Tipos de configuración
- Se puede instalar de modo aislado (alone) El
propio servidor quien servirá todas las
peticiones web, ya sean éstas de contenido HTML
estático, o dinámico. - La instalación de Tomcat en conjunción con el
Apache Es más eficiente ya que el Apache
serviría las páginas Estáticas y el Tomcat las
dinámicas. - El primer tipo de configuración no se
recomienda ya que el rendimiento del Tomcat como
servidor de páginas estáticas no es muy
eficiente.
31Jakarta-TomcatInstalación (I) Alone
- Instalación Alone Se han de seguir los pasos
siguientes - Descomprimir el fichero jakarta-tomcat-4.0.3.zip
- Crear las siguientes variables de entorno
- (panel de control-gtSistema-gtAvanzado-gtVariables
de Entorno)
32Jakarta-TomcatInstalación(II)Alone
- JAVA_HOMEpath jdk1.3
- TOMCAT_HOMEpath Tomcat
- Modificar de la misma forma la variable de
entorno classpath añadiendo - Classpathc\jdk1.3\libltpathTomcatgt\common\lib\se
rvlet.jar - Visualización de variables de entorno después de
introducirlas
33Jakarta-TomcatFuncionamiento (I) Arrancar Tomcat
- Para hacer funcionar el Tomcat como servidor
seguir los pasos siguientes - Ejecutar el fichero startup.bat que está en la
carpeta bin del Jakarta-Tomcat. - Probar http//nombreservidor8080. El resultado
que se ha de obtener es la siguiente pantalla
Puerto de escucha peticiones dinámicas
34Jakarta-TomcatFuncionamiento(II)Parar Tomcat
- Para parar el Tomcat
- Ejecutar el fichero shutdown.bat de la carpeta
bin del Jakarta-Tomcat. - 8080 es el puerto de peticiones dinámicas.
- Se puede cambiar para que escuche sobre el puerto
80 (puerto de peticiones HTTP). Para ello buscar - Parar el Tomcat
- Buscar en el fichero Path Jakarta-Tomcat\conf\se
rver.xml - lt!--Define a non-SSL HTTP/1.1 Connector on port
8080--ltConnector - ClassName"org.apache.catalina.connector.http.Http
Connector - port8080" minProcessors"5" maxProcessors"75"
enableLookups"true"
redirectPort"8443"
acceptCount"10" debug"0" connectionTimeout"6000
0"/gt - Donde pone port8080 poner port80.
- Arrancar Tomcat.
35Jakarta-TomcatInstalación (III) Comunicación con
el Apache
- ObjetivoLas páginas estáticas las sirva el
Apache (en el puerto 80) y las que son dinámicas
(servlets y JSP) las sirva el Tomcat(en el puerto
8080). - Comunicación del Jakarta-Tomcat con el Apache
Pasos a seguir - Realizar (si no están hechos) los pasos de la
Instalación de modo Alone. - Instalar el módulo mod_webapp
- Descomprimir el archivo webapp-module-1.0-tc40-win
dows.zip - Copiar libapr.dll en la carpeta c\winnt\system32
- Copiar libapr.dll y mod_webapp.so en la carpeta
modules del Apache.
36Jakarta-TomcatInstalación (IV) Comunicación con
el Apache
- Configuración en el Apache
- Editar el fichero httpd.conf
- Añadir las siguientes líneas al final de la
sección LoadModule - LoadModule webapp_module modules/mod_webapp.so
- En la sección ClearModuleList añadir
- AddModule mod_webapp.c
- Añadir la siguientes líneas al final del fichero
httpd.conf - WebAppConnection warpConnection warp
localhost8008 - WebAppDeploy examples warpConnection /examples/
- WebAppInfo /webapp-info
- Arrancar el Tomcat primero y después el Apache y
probar la siguiente dirección
http\\nombreservidor
37Introducción a los Servidores de Información ISS
- Instalación
- Configuración como Servicio del S.O
- Configuración de un sitio Web.
38ISS (Instalación)
- El servidor de Microsoft viene incorporado con
el propio Sistema Operativo Windows NT o Windows
2000. - Se puede instalar al instalar el S.O o bien se
puede instalar aparte. - Requisitos de la instalación
- Un equipo que ejecute Windows NT o 2000 con
TCP/IP - Espacio en el disco suficiente. Utilizar el
sistema de ficheros NTFS.
39ISS (Configuración de modo de funcionamiento(I))
- Utilizar el Administrador de Servicios de
Internet. - El Administrador de Servicios de Internet está en
Panel de Control-gtHerramientas Administrativas.
Equipos en Red
Servicios Disponibles
40ISS (Configuración de modo de funcionamiento(II))
- El IIS dispone de los siguientes servicios
- Servicio WWW Servicio de publicación de
contenidos en la red. - Servicio FTP Servicio de transferencia de
ficheros. - Servicio SMTP
- El IIS permite Iniciar, detener o poner en modo
de pausa un servicio. - Para ver las propiedades de un servicio o equipo
haga doble clic sobre él. - Para ver si el servicio WWW funciona
- Abrir navegador
- Poner en la URL http//localhost
41ISS (Configuración de un Sitio Web(I))
Alias existentes en el sistema y su ruta
42ISS (Configuración de un Sitio Web(II))
- Creación de alias
- Crear el alias InteliRed para la carpeta
c\SerWeb\htdocs.
- Sacar propiedades de la carpeta c\SerWeb\htdocs
- Compartir esa carpeta
- Pulsar agregar.
43ISS (Configuración de un Sitio Web(II))
3. Poner un alias 4. Poner permisos de acceso a
esa carpeta. 5. Probar http//nombresservidor/Inte
liRed/prueba.html
44Tecnologías en la Parte Cliente.Html
- HTML
- Lenguaje para crear documentos Web. Es un
lenguaje de marcas. - Cuando se hace una petición, el servidor si tiene
ese documento lo sirve, pero no guarda ninguna
información de estado acerca de él. - Ejercicio Crear una página HTML que diga Hola a
todos!. - Código Ejecución
45Tecnologías en la Parte Cliente.
JavaScript
- Lenguaje (no etiquetas) que extiende la
funcionalidad del cliente. - ObjetivoDescargar al servidor de la ejecución de
pequeñas tareas que se pueden hacer en el
cliente. Por ejemplo comprobar si una fecha es
correcta o comprobar si los campos de un
formulario son completos. - Se incrusta dentro del código HTML con la
etiqueta ltscriptgt lt/scriptgt - Ejemplo Hacer un script que diga !Hola a todos!
- Código Ejecución
-
46Tecnologías en la Parte Cliente.
Applets
- Definición Es una pequeña aplicación accesible
en un servidor Internet, que se descarga por la
red, y se ejecuta en el cliente (navegador) como
parte de un documento web. - Se hacen en Java
- Van incrustados en el código HTML
- Ejercicio Applet que diga Hola a todos!
- Código Java Código HTML Ejecución
47Tecnologías en la Parte Cliente.
Cookies (Qué son?)
- Qué son?
- Una cookie no es más que un fichero de texto que
algunos servidores piden a nuestro navegador que
escriba en nuestro disco duro, con información
acerca de lo que hemos estado haciendo por sus
páginas. - Se almacenan en el disco duro del usuario ,
liberando al servidor de una importante
sobrecarga. Es el propio cliente quien almacena
la información y se la enviará al servidor cuando
éste la solicite. - Se usan principalmente para guardas las
preferencias del usuario. - Para encontrarlas basta que Pulses Inicio,
selecciones Buscar y luego Archivos o carpetas,
escribe cookie - Visualiza una cualquiera con el WordPad , Qué
ves?
48Tecnologías en la Parte Cliente.
Cookies (Qué son?)(cont)
- Componentes mínimos de una cookie
- nombre valor expires fechaCaducidad
- Donde nombre es el nombre del dato almacenado
- y valor el valor de ese dato.
- La fecha de caducidad es un parámetro opcional
que indica el tiempo que se conservará la cookie.
Si no se especifica el valor de expires, la
cookie caduca cuando el usuario sale de la sesión
en curso con el navegador. Por consiguiente, el
navegador conservará y recuperará la cookie sólo
si su fecha de caducidad aún no ha expirado. - Más componentes
- Un dominio, un camino , etc
- Todo estos datos están dentro de un fichero de
texto , y a veces aparecen bastante crípticos.
49Tecnologías en la Parte Cliente.Cookies (Cómo
configurar el navegador para aceptarlas?)
- El navegador se puede configurar para que acepte
automáticamente las cookies (configuración por
defecto) o bien que pregunte si deseas o no
aceptarlas - Para ello ir a Herramientas -gtOpciones-gtSeguridad
Escoger una zona en la cual se ha de establecer
la seguridad y pulsar Personalizar nivel
50Tecnologías en la Parte Cliente.Cookies (Cómo
configurar el navegador para aceptarlas?) (Cont)
- La configuración por defecto es permitir aceptar
las cookies.
51Tecnologías en la Parte Cliente.Cookies (Cómo
configurar el navegador para aceptarlas?) (Cont)
- Si cambiamos la configuración y seleccionamos
Pedir datos en Habilitar Cookies propias de cada
sesión no almacenada y Permitir que las cookies
se almacenen en nuestro equipo, cada vez que una
página Web pretenda instalar una cookie en
nuestro equipo, nos aparece la siguiente
pantalla
Pulsando en No, puede que no te permita
visitar(no siempre) el Sitio Web. Si pulsas en
Más información te muestra de que cookie se trata
y si pulsas en Sí, instala la cookie.
52Tecnologías en la Parte Cliente.
Cookies (Ejemplo)
- Ejemplo EjCookie.txt
- Cambiar el nivel de Seguridad en el Sitio de
Intranet para que te pregunte si desea instalar
la Cookie. - Ejecutar el archivo
- https\\nombreServidor\InteliRed\EjCookie.htm
- EjCookie.htm
- Ir a otro sitio Web
- Volver a https\\nombreServidor\InteliRed\EjCookie
.htm - Porqué no te pregunta el nombre?
53Tecnologías en la parte Servidor Obtención de los
datos(I)
- El primer paso de una aplicación web suele
consistir en la obtención de algunos datos del
usuario - Tradicionalmente, se ha hecho con un formulario
HTML - El usuario introduce la información en los campos
del formulario y pulsa un botón de envío (submit)
54Tecnologías en la parte Servidor Obtención de los
datos(II)
ltBODYgt ltFORM METHOD"GET" ACTION"/cgi-bin/met.c
gi"gt ltBgt Introduzca su nombre lt/Bgt ltINPUT
TYPE"NAME" NAME"NAME"gt ltBRgt ltBgt Introduzca
su password lt/Bgt ltINPUT TYPE"PASSWORD"
NAME"PASSWORD"gt ltHRgt ltINPUT TYPE"SUBMIT"
NAME"ENVIAR"gt lt/FORMgt lt/BODYgt
55Tecnologías en la parte ServidorEnvío de
peticiones al servidor webProtocolo HTTP
- Con el fin de poner en acción al servidor web y
que ejecute un programa de servidor, el navegador
tiene que empaquetar los datos del usuario y
realizar una petición HTTP al servidor web - Una petición HTTP está formada por
- El URL de la página o script que el usuario
quiere acceder - Los datos del formulario (si se introdujo alguno)
- Información adicional de cabecera información
del navegador, longitud y tipo de la petición,
etc. - La petición es generada de manera transparente
por el navegador, pero es interesante saber cómo
se construye y se utiliza
56Tecnologías en la parte ServidorMétodos get y
post
- Cada petición debe especificar qué método de
petición utiliza. Los más comunes son - HEAD obtiene únicamente información del
documento - GET usado para solicitar la ejecución de un
programa web - Todos los datos del formulario introducidos se
añaden a la cadena que forma la petición - Los datos se añaden utilizando parejas
clavevalor - http//www.cualquiera.com/cgi-bin/hello.cgi?nombre
Maria - La petición anterior ejecutaría un script
denominado hello.cgi del directorio cgi-bin del
servidor www.cualquiera.com y le pasaría el valor
Maria para la variable nombre - GET es el método por defecto para las peticiones
- Problemas (1) la longitud de los datos está
limitada (2) posibilidad de encontrarse el URL
en la caché del navegador
57Tecnologías en la parte Servidor Métodos Get y
Post (cont.)
- POST usado para solicitar la ejecución de un
programa web - Empaqueta los datos del formulario como parte del
cuerpo de la petición (y no en el URL) - El programa servidor podrá acceder al contenido
del cuerpo de la petición y buscar los nombres de
variable y sus valores - POST siempre permite el envío de más datos que
GET - Además, siempre envía la petición al servidor, en
lugar de mirar en la caché del navegador - Qué método usar?
- En la mayor parte de los casos, es indiferente
- Idealmente, una petición GET se usaría para
obtener información del servidor - POST se utilizaría si la petición fuese a
actualizar datos en el servidor
58Tecnologías en la parte Servidor Ejecución del
programa servidor y devolución del resultado
- El servidor web empieza determinando el tipo de
entorno que necesita para ejecutar el
programa/script servidor, consultando información
de configuración script CGI, JSP, servlet, etc - A continuación, carga el entorno de ejecución
adecuado y le deja accesible la información de la
petición - El paso final consiste en la creación de algún
tipo de respuesta y su envío al navegador - El navegador recibirá la respuesta y determinará
su tipo para saber cómo mostrarla - El tipo más habitual es HTML, pero el servidor
puede devolver XML, texto sin formato, GIFs, etc.
59Tecnologías en la parte Servidor Desarrollo de
aplicaciones servidoras
Un programa servidor es un programa cualquiera,
con unas pocas pero importantes excepciones Para
hacer un programa accesible a un servidor web,
debe poseer las siguientes características El
programa tiene que ser invocable desde el
servidor web Tiene que haber alguna manera en que
el servidor pase los datos del formulario al
programa Una vez que el programa ha sido
invocado, debe existir un punto de entrada
estándar Una vez que el programa ha procesado los
datos, empaquetará los resultados y se los
enviará al servidor web, el cual, a su vez, se
los enviará al navegador
60Tecnologías en la parte ServidorTecnologías para
el servidor(CGI)
- CGI (Common Gateway Interface)
- La más común de todas
- Los programas se pueden escribir prácticamente en
cualquier lenguaje (el más popular es Perl o C) - Crea un proceso separado para cada petición
- Ejemplo Cuando tenemos que conectar una base de
datos, abrimos la conexión con la base de datos
en un script y en ese mismo script se cierra la
conexión a la base de datos. - Devuelve un página HTML.
- No guarda información de estado.
-
61Tecnologías en la parte ServidorTecnologías para
el servidor(CGI) (Cont)
- Ejercicio Diferencia entre get y post
- Parar el Apache y el Tomcat (si está arrancado)
- Abrir el fichero PathApache\conf\http.conf y
modificar la directiva ScriptAlias y Directory,
poniendo - ScriptAlias /cgi-bin/ "C/serWeb/cgi-bin/"
- ltDirectory "C/serWeb/cgi-bin"gt
- AllowOverride None
- Options None
- Order allow,deny
- Allow from all
- lt/Directorygt
- Realizar el código
- Código Util.c Código Met.c Código get Código
post - Colocar met .exe resultado de Compilar el fichero
Met.c en la misma carpeta donde hemos creado
ScriptAlias y renombrarlo con la extensión .cgi . - Ejecutar Ejecución get Ejecución post
- Qué diferencia encuentras entre get y post?
Path donde están los .cgi
62Tecnologías en la parte Servidor
Tecnologías para el servidor(APIs)
- APIs propietarias (ISAPI, NSAPI)
- Con el fin de eliminar las ineficiencias de CGI,
Microsoft y Netscape desarrollaron sus propias
APIs para escribir aplicaciones servidoras como
librerías compartidas - Permiten que haya respuestas dinámicas a las
peticiones HTTP, en lugar de simplemente devolver
archivos HTML estáticos. - Ejemplo ISAPI http//mickey.ing.unap.cl/samples/i
sapi/isapi.htm - Los scripts se cargan como parte del servidor y
pueden tener acceso a toda su funcionalidad. - Son DLLs que se ejecutan en el mismo espacio de
direcciones (no se crea un proceso para cada
petición). Solo se carga una copia de cada script
en el servidor y es compartida por diferentes
peticiones.
63Tecnologías en la parte Servidor
Tecnologías para el servidor(APIs)(cont.)
- APIs propietarias (ISAPI, NSAPI)
- Ventajas
- Mejor rendimiento
- Menos consumos de recursos
- Aumento de la seguridad.
- Desventajas
- Son específicas para plataformas particulares
- Pueden hacer caer al servidor web
- Exigen programadores expertos en el servidor y en
técnicas de programación como manejo de
excepciones, sincronización, etc.
64Tecnologías en la parte Servidor
Tecnologías para el servidor(ASP)
- ASP (Active Server Pages)
- La tecnología web de Microsoft que permite
combinar HTML, scripting y componentes - Los comandos que se van ejecutar se embeben en el
código HTML. - lt!-comando?
- Todo se ejecuta en el servidor, lo que asegura su
independencia del navegador - Ventaja Flexibilidad del formato de la
información recibida y servida. - Desventaja sólo se pueden usar con servidores
web Microsoft en sistemas operativos Microsoft
65Tecnologías en la parte Servidor
Tecnologías para el servidor(PHP)
- PHP
- PHP es un lenguaje interpretado de alto nivel
embebido en páginas HTML y ejecutado en el
servidor. - El intérprete se añade como un módulo más al
Apache. Si se instala de esta forma el Apache
crea un proceso hijo para cada petición que no
puede ser atendida por ningún otro proceso hijo
ya creado, pero cuando un proceso necesita
realizar una conexión SQL a la base de datos, la
primera vez crea esa conexión y si otra página o
petición solicita una conexión SQL, puede
utilizar la que se estableció inicialmente. - Ejemplo php.txt
66Tecnologías en la parte Servidor
Tecnologías para el servidor(PHP)(cont.)
- Se escribe el código HTML con cierto código PHP
embebido (introducido) en el mismo, que producirá
cierta salida (en nuestro ejemplo, producir un
texto). - Es gratuito Se puede descargar a través de la
página principal de PHP www.php.net, un módulo
que hace que nuestro servidor web comprenda los
scripts realizados en este lenguaje. - Es independiente de plataforma, puesto que existe
un módulo de PHP para casi cualquier servidor
web.
67Tecnologías en la parte Servidor
Tecnologías para el servidor(Java Servlets)
- Java servlets
- Un servlet Java es un programa servidor que
recibe peticiones HTTP y devuelve resultado en
HTTP (página en HTML) en este sentido, es
parecido a un CGI - Un servlet es al servidor lo que es un applet al
cliente. - Crea un hilo (no proceso) nuevo para cada
petición - Ejemplo cuando tenemos que conectar con una base
de datos , en el servlet se inicia una conexión a
la base de datos y esa conexión permanece abierta
a lo largo de todas las peticiones sobre ese
servlet. - Se puede acceder desde el código del Servlet a
métodos de otras clases .
68Tecnologías en la parte Servidor
Tecnologías para el servidor(JSP)
- JSP
- Procesa código embebido en un documento HTML y
devuelve su resultado al navegador. - También podemos incorporar beans o componentes
dentro del código del JSP. Estos beans,
normalmente, acceden a la base de datos y desde
el código JSP se accede mediante etiquetas a las
propiedades set y get del bean. - Hace lo mismo que un servlet, pero frente a este,
la ventaja que aporta es podemos escribir o
modificar! Código HTML frente a tener que hacer
miles de println como hacemos en un servlet. - Podemos tener a varias personas haciendo código
en HTML y otras personas haciendo código JSP y
después juntarlo todo. - Como se hace con Java es independiente de la
plataforma.
69Tecnologías en la parte Servidor
Tecnologías para el servidor(XML)
- XML
- XML es un subconjunto simplificado de SGML, que
incorpora muchas de las características de SGML,
entre las que se incluyen las tres más
importantes extensibilidad, estructura y
validación. - Uno de los objetivos principales de XML es
separar el contenido (datos) de la presentación
(cómo se ven esos datos) en los documentos Web. - XML se centra en el contenido, con lo que tiene
una forma de incluir metadatos en los documentos
Web.
70Tecnologías en la parte Servidor
Tecnologías para el servidor(XML)
- Los metadatos es información acerca de la
información. - Para que nos sirven? Supongamos que quiero
comprar un anillo en un joyería y quiero buscar
una línea de joyerías en Oviedo llamada Cuétara.
Introduzco el término Cuétara en el buscador, y
obtengo como resultado direcciones relacionadas
con una marca de galletas, personas que se
apellidan de esa forma, etc. Si en el buscador
introdujera a parte del término que busco el
contexto en el que le busco indicándoselo de
alguna forma , el resultado que obtendría sería
más eficiente.
71Tecnologías en la parte Servidor
Conclusiones
- CGI ha sido utilizada en el pasado para
introducir interactividad y contenidos dinámicos
en el Web - Debido a sus deficiencias (para el desarrollo de
aplicaciones y su escalabilidad), se han
desarrollado APIs específicas ISAPI y NSAPI, por
ejemplo - Estas APIs son más eficientes que CGI, pero mucho
más complejas e inseguras. - ASP (Active Server Pages) y PHP han venido a
simplificar el desarrollo de aplicaciones web
utilizando técnicas de scripting - Para conseguir una solución más potente y
extensible en la parte servidora, Sun ha
desarrollado la tecnología denominada servlets y
JSP. - Para separar la parte del contenido de la
presentación del mismo, ha aparecido XML