Upload
soledad-barragan
View
221
Download
0
Embed Size (px)
Citation preview
11
Programación de Servidores Programación de Servidores WEBWEB
Realizado por : Amine Realizado por : Amine KerzaziKerzazi
22
IndiceIndice
Common Gateway Interface (CGI)Common Gateway Interface (CGI) * ¿Qué es?* ¿Qué es? * Ventajas* Ventajas * Desventajas* Desventajas * Documento Html vs Programa CGI* Documento Html vs Programa CGI * Aplicaciones* Aplicaciones La aplicacion (consultas sobre una base de La aplicacion (consultas sobre una base de
datos)datos) BibliografiaBibliografia
33
CGI: Common Gateway CGI: Common Gateway Interface Interface
El protocolo CGI define la forma en El protocolo CGI define la forma en que se realizan los intercambios de que se realizan los intercambios de información entre los clientes y información entre los clientes y servidores HTTP, y entre estos y las servidores HTTP, y entre estos y las aplicaciones CGI. aplicaciones CGI.
Como un programa CGI es un Como un programa CGI es un ejecutable, es equivalente a dejar al ejecutable, es equivalente a dejar al mundo ejecutar un programa en tu mundo ejecutar un programa en tu sistema .sistema .
44
Ventajas del CGIVentajas del CGI
su sencillezsu sencillez, ya que es muy fácil de , ya que es muy fácil de entender, además de ser un lenguaje entender, además de ser un lenguaje de programación independiente, ya de programación independiente, ya que los escritos CGI pueden que los escritos CGI pueden elaborarse en varios lenguajes. elaborarse en varios lenguajes.
es es un estándarun estándar para usarse en para usarse en todos los servidores Web, y funcionar todos los servidores Web, y funcionar bajo una arquitectura independiente, bajo una arquitectura independiente, ya que ha sido creado para trabajar ya que ha sido creado para trabajar con cualquier arquitectura de con cualquier arquitectura de servidor Web. servidor Web.
55
DesventajasDesventajas
su eficienciasu eficiencia, debido a que el , debido a que el Servidor Web tiene que cargar el Servidor Web tiene que cargar el programa CGI y conectar y programa CGI y conectar y desconectar con la base de datos desconectar con la base de datos cada vez que se recibe una cada vez que se recibe una requisición requisición
66
Documento HTML vs Programa Documento HTML vs Programa CGICGI
Un documento en HTML que la Un documento en HTML que la Web se trae es estático, es decir, Web se trae es estático, es decir, se mantiene constante: un se mantiene constante: un fichero de texto que no cambia. fichero de texto que no cambia.
Un programa CGI, por otro lado es Un programa CGI, por otro lado es ejecutado en tiempo real, así que ejecutado en tiempo real, así que puede generar información puede generar información dinámica. dinámica.
77
Aplicaciones del CGIAplicaciones del CGI
Permiten recoger y procesar la Permiten recoger y procesar la información que proviene de los información que proviene de los formularios HTML. formularios HTML.
Pueden interpretar las pulsaciones de Pueden interpretar las pulsaciones de un usuario sobre un mapa activo. un usuario sobre un mapa activo.
Sirven para generar dinámicamente Sirven para generar dinámicamente información, a partir de valores información, a partir de valores dependientes del entorno dependientes del entorno
Pueden realizar sofisticadas Pueden realizar sofisticadas búsquedas sobre una base de datos. búsquedas sobre una base de datos.
………………
88
La aplicacionLa aplicacion
Programar un Cgi para realizar Programar un Cgi para realizar consultas sobre una base de datos consultas sobre una base de datos para saber las notas de los alumnospara saber las notas de los alumnos
99
La aplicacionLa aplicacion
Ofrecer un formulario para interrogar Ofrecer un formulario para interrogar la base de datos la base de datos
1010
La aplicacionLa aplicacion
Representar los resultados de la Representar los resultados de la consulta en una tablaconsulta en una tabla
1111
Base de datosBase de datos
2 ficheros que residen en el 2 ficheros que residen en el servidor:servidor:
• Uno de los alumnos Uno de los alumnos • Otro de las categorias de los Otro de las categorias de los
alumnosalumnos
1212
Base de datosBase de datos
Fichero de alumnosFichero de alumnos
1313
Base de datosBase de datos
Fichero de las categorias de alumnosFichero de las categorias de alumnos
1414
Definiciones de tiposDefiniciones de tipos
Categoria de AlumnosCategoria de Alumnos
1515
Definiciones de tiposDefiniciones de tipos
AlumnosAlumnos
1616
Lectura de ficherosLectura de ficheros
2 funciones:2 funciones:
- - leerBDCat :: FilePath -> IO BDCatleerBDCat :: FilePath -> IO BDCat
para leer las categoriaspara leer las categorias
- - leerBDAlumno :: FilePath -> IO leerBDAlumno :: FilePath -> IO BDAlumnoBDAlumno
para leer los alumnos para leer los alumnos
1717
leerBDCat :: FilePath -> IO leerBDCat :: FilePath -> IO BDCatBDCat
1818
leerBDAlumno :: FilePath -> IO leerBDAlumno :: FilePath -> IO BDAlumnoBDAlumno
1919
perteneceA :: String -> String -> perteneceA :: String -> String -> BoolBool
2020
tablaAlumno :: BDAlumno -> BDCat -> Orden -> Cgi tablaAlumno :: BDAlumno -> BDCat -> Orden -> Cgi
()()
2121
tabla :: Int -> [(String,String,Float)] -> Html tabla :: Int -> [(String,String,Float)] -> Html ()()
2222
dibujar :: Int -> [(String,String,Float)] -> dibujar :: Int -> [(String,String,Float)] -> Html()Html()
2323
informacion::BDAlumno -> BDCat -> informacion::BDAlumno -> BDCat -> [(String,String,Float)][(String,String,Float)]
2424
Funciones de comparacion y Funciones de comparacion y ordenacionordenacion
2525
Funciones de busquedaFunciones de busqueda
buscarAlumno :: [String] -> BDAlumno buscarAlumno :: [String] -> BDAlumno -> Int -> Condicion -> BDAlumno -> Int -> Condicion -> BDAlumno
2626
Fuciones de busquedaFuciones de busqueda
buscarAlumno_cat :: [String] -> buscarAlumno_cat :: [String] -> BDAlumno ->Int -> Condicion -> BDAlumno ->Int -> Condicion -> BDAlumnoBDAlumno
2727
Funciones de busquedaFunciones de busqueda
buscarAlumno_todos :: [String] -> buscarAlumno_todos :: [String] -> BDAlumno -> Condicion -> BDAlumno -> Condicion -> BDAlumno BDAlumno
2828
Funciones de busquedaFunciones de busqueda
incluidoEn :: [String] -> String -> BoolincluidoEn :: [String] -> String -> Bool
incluido_parcial :: [String] -> String -> incluido_parcial :: [String] -> String -> BoolBool
2929
Funciones de busquedaFunciones de busqueda
busqueda :: [String] -> Int -> busqueda :: [String] -> Int -> Condicion -> Orden -> Cgi()Condicion -> Orden -> Cgi()
3030
Fucniones de manejo de Fucniones de manejo de categoriascategorias
3131
practica :: Cgi ()practica :: Cgi ()
3232
BibliografiaBibliografia
http://cdec.unican.es/libro/CGI.htmhttp://cdec.unican.es/libro/CGI.htm (CGI (CGI en detalles)en detalles)
http://www.pangea.org/pacoc/manuales/mhttp://www.pangea.org/pacoc/manuales/manual5.htmanual5.htm (tutorial online de CGI)(tutorial online de CGI)
http://www.lcc.uma.es/~pepeg/ap/cgis.hthttp://www.lcc.uma.es/~pepeg/ap/cgis.htmlml (practica propuesta) (practica propuesta)
module AP.Cgi.Lib.HTML (modulo module AP.Cgi.Lib.HTML (modulo implementado en nuestra facultad)implementado en nuestra facultad)