Clase 2b

Anuncio
Tecnologías de Programación Web
Dr. Diego C. Martínez
© DCM-DCIC-UNS
Universidad Nacional de Catamarca
Noviembre de 2009
1
Tecnologías de Programación Web
Dr. Diego C. Martínez
Universidad Nacional de Catamarca
Noviembre de 2009
Server Side Includes
Server Side Includes
<!--#set var="cost" value="\$100" -->
Los Server Side Includes (SSI) son directivas que se incluyen en las páginas HTML,
dirigidas al servidor para algún procesamiento específico antes de retornar ese
documento al cliente.
<!--#if expr="test_condition" -->
<!--#elif expr="test_condition" -->
<!--#else -->
<!--#endif -->
La idea es incluir alguna información dinámica en una página creada estáticamente.
La estructura de una directiva es:
<!--#directiva parametro=valor parametro=valor -->
Debe indicarse específicamente qué archivos seran preprocesados en búsqueda de
tags SSI. La extensión habitual es shtml.
En Apache puede utilizarse XBitHack para independizarse de la extensión.
Algunas directivas comunes:
<!--#echo var="DATE_LOCAL" -->
No todos los servidores aceptan SSI.
<!--#config timefmt="%A %B %d, %Y" -->
Hoy es <!--#echo var="DATE_LOCAL" -->
Aunque es tecnología vieja, todavia se usa con frecuencia cuando el balance
estático-dinámico en la página lo justifica.
Ultima modificacion: <!--#flastmod file="index.html" -->
<!--#include virtual="/footer.html" -->
<!--#printenv -->
© Diego C. Martínez - DCIC-UNS
© DCM-DCIC-UNS
7
© Diego C. Martínez - DCIC-UNS
8
2
Tecnologías de Programación Web
Dr. Diego C. Martínez
Universidad Nacional de Catamarca
Noviembre de 2009
CGI Scripts
CGI (Common Gateway Interface) es un estándar que establece
una interfaz entre aplicaciones externas y servidores de
información, como HTTP o FTP.
Básicamente es un mecanismo que permite a todo el mundo
ejecutar un programa determinado, residente en un servidor de
información. Por este hecho se les suele denominar aplicación
CGI, o scripts CGI.
Bob McCool
Esto requiere algunas consideraciones de seguridad. Por ejemplo, las aplicaciones
a ejecutarse se mantienen en directorios fuera del alcance normal.
Como es un estándar de interfaz, cualquier programa puede ejecutarse como
aplicación CGI: puede ser implementado en C, C++, Fortran, PERL, Unix Shell, etc.
La particularidad es que no utiliza la línea de comandos para recibir información,
sino variables de entorno...
QUERY_STRING es todo lo que sigue luego del primer ? del URL.
PATH_INFO es la ruta para información adicional que puede requerir la aplicación.
© Diego C. Martínez - DCIC-UNS
9
CGI
CGI Scripts - Perl
La aplicacion CGI recibe los datos en forma de variables de entorno y simplemente
escribe sus resultados en la salida estándar.
Uno de los lenguajes más populares para la implementación de
aplicaciones CGI es Perl, creado en 1987 por Larry Wall.
Sin embargo, debe hacerlo sabiendo que el receptor directo es el servidor.
Esto implica que debe escribir unos headers antes:
Por ejemplo, para enviar HTML debe escribirse:
El nombre Perl es una derivación de pearl (perla en inglés).
Mateo 13:45-46
El Reino de los Cielos se parece también a un negociante que se dedicaba a
buscar perlas finas; y al encontrar una de gran valor, fue a vender todo lo que
tenía y la compró.
Content-type: text/html
<HTML><HEAD>
<TITLE>Titulo</TITLE>
</HEAD><BODY>
...
</BODY></HTML>
a.k.a PERL -- Practical Extraction and Report Language
Es un lenguaje de programación dinámico, y el que mayoritariamente contribuyó al
titulo de scripts que suelen tener las aplicaciones CGI.
http://www.perl.org/
Por ejemplo, para redireccionar a otro documento
Content-type: text/html
Location: http://otrohost.org
<HTML><HEAD><TITLE>Oops..</TITLE>
</HEAD><BODY>
...
</BODY></HTML>
© Diego C. Martínez - DCIC-UNS
© DCM-DCIC-UNS
Larry Wall
La sintaxis es similar a la del lenguaje C, pero con claras diferencias por la
necesidad de ser dinámico.
11
© Diego C. Martínez - DCIC-UNS
12
3
Tecnologías de Programación Web
Dr. Diego C. Martínez
Universidad Nacional de Catamarca
Noviembre de 2009
CGI – Perl - ejemplos
CGI - Perl
HTML
<form method="post" action="http://localhost/cgi-bin/mostrar.pl" >
Texto: <input type="text" name="mitexto"><br>
<input type="submit" value="Enviar">
<input type="reset" value="Limpiar">
</form>
Algunas características generales de Perl:
●
●
●
#!c:\Program Files\Perl\bin\perl.exe
$inputlength=$ENV{'CONTENT_LENGTH'};
read(STDIN,$formdata,$inputlength);
($name,$value)=split /=/,$formdata;
print "Content-type: text/html\n";
print "\n";
print "
<HTML>
<HEAD>
<TITLE>Resultados:</TITLE>
</HEAD>
<BODY>
<H1>Esto es lo que se ha ingresado:</H1>
<BR>
$name = $value
</BODY>
</HTML>";
●
●
●
●
●
●
Perl es Open Source (GPL).
Al ser dinámico no requiere declaración de variables, aunque es admisible esa
forma de programar (strict)
Puede realizar entrada y salida estándar o comunicarse con un servidor via la
interfaz CGI (usando filehandles, como STDIN).
Las variables comienzan con el símbolo $ (eventualmente tambien % o @) .
Es fácil definir arreglos y tablas hash simples.
Provee librerias para el acceso a bases de datos
Admite muchas características de la orientación a objetos.
Posee buen soporte para la utilización de expresiones regulares.
Mucho soporte, libros, tutoriales.
Script CGI
(PERL)
© Diego C. Martínez - DCIC-UNS
13
CGI y Java
© Diego C. Martínez - DCIC-UNS
Programación del lado servidor – otro modelo
El estándar CGI sugiere que cualquier aplicación escrita en cualquier lenguaje
puede actuar como script CGI.
El estándar CGI establece el vínculo entre el servidor web y una aplicación externa
que recibe y procesa datos.
Algunos lenguajes pueden presentar obstáculos, como en Java:
● Las aplicaciones Java no pueden ejecutarse como cualquier otra aplicación.
● Java no tiene acceso general al entorno.
El uso popular de Perl y la técnica de SSI derivaron con el tiempo en nuevas
tecnologías para la programación del lado servidor.
Otra aproximación para lograr dinamismo en las páginas web es incluir el intérprete
en el servidor (a la manera de Perl) y procesar documentos con tags incrustados en
su contenido (a la manera de SSI).
Una forma de solucionar esto es construir un shell script que administre la
interacción Java – WebServer: recolecta los datos de entorno y se los envía a la
aplicación Java.
<HTML>
<HEAD>
<TITLE>Pagina</TITLE>
</HEAD>
<BODY>
<H1>Encabezado</H1>
<BR>
Bla bla bla
<tagespecial
..codigo en algun lenguaje...
tagespecial>
</BODY>
</HTML>
Sin embargo, es contraproducente. Java propone una arquitectura aparte para sus
aplicaciones del lado servidor y ésa debería usarse.
© Diego C. Martínez - DCIC-UNS
© DCM-DCIC-UNS
14
15
© Diego C. Martínez - DCIC-UNS
16
4
Tecnologías de Programación Web
Dr. Diego C. Martínez
© DCM-DCIC-UNS
Universidad Nacional de Catamarca
Noviembre de 2009
5
Descargar