1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi
2 Indice 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 datos) La aplicacion (consultas sobre una base de datos) Bibliografia Bibliografia
3 CGI: Common Gateway Interface El protocolo CGI define la forma en que se realizan los intercambios de información entre los clientes y servidores HTTP, y entre estos y las aplicaciones CGI. Como un programa CGI es un ejecutable, es equivalente a dejar al mundo ejecutar un programa en tu sistema.
4 Ventajas del CGI su sencillez, ya que es muy fácil de entender, además de ser un lenguaje de programación independiente, ya que los escritos CGI pueden elaborarse en varios lenguajes. es un estándar para usarse en todos los servidores Web, y funcionar bajo una arquitectura independiente, ya que ha sido creado para trabajar con cualquier arquitectura de servidor Web.
5 Desventajas su eficiencia, debido a que el Servidor Web tiene que cargar el programa CGI y conectar y desconectar con la base de datos cada vez que se recibe una requisición
6 Documento HTML vs Programa CGI Un documento en HTML que la Web se trae es estático, es decir, se mantiene constante: un fichero de texto que no cambia. Un programa CGI, por otro lado es ejecutado en tiempo real, así que puede generar información dinámica.
7 Aplicaciones del CGI Permiten recoger y procesar la información que proviene de los formularios HTML. Permiten recoger y procesar la información que proviene de los formularios HTML. Pueden interpretar las pulsaciones de un usuario sobre un mapa activo. Pueden interpretar las pulsaciones de un usuario sobre un mapa activo. Sirven para generar dinámicamente información, a partir de valores dependientes del entorno Sirven para generar dinámicamente información, a partir de valores dependientes del entorno Pueden realizar sofisticadas búsquedas sobre una base de datos. Pueden realizar sofisticadas búsquedas sobre una base de datos. ……… ………
8 La aplicacion Programar un Cgi para realizar consultas sobre una base de datos para saber las notas de los alumnos
9 La aplicacion Ofrecer un formulario para interrogar la base de datos
10 La aplicacion Representar los resultados de la consulta en una tabla
11 Base de datos 2 ficheros que residen en el servidor: Uno de los alumnos Uno de los alumnos Otro de las categorias de los alumnos Otro de las categorias de los alumnos
12 Base de datos Fichero de alumnos
13 Base de datos Fichero de las categorias de alumnos
14 Definiciones de tipos Categoria de Alumnos
15 Definiciones de tipos Alumnos
16 Lectura de ficheros 2 funciones: - leerBDCat :: FilePath -> IO BDCat para leer las categorias para leer las categorias - leerBDAlumno :: FilePath -> IO BDAlumno para leer los alumnos para leer los alumnos
17 leerBDCat :: FilePath -> IO BDCat
18 leerBDAlumno :: FilePath -> IO BDAlumno
19 perteneceA :: String -> String -> Bool
20 tablaAlumno :: BDAlumno -> BDCat -> Orden -> Cgi ()
21 tabla :: Int -> [(String,String,Float)] -> Html ()
22 dibujar :: Int -> [(String,String,Float)] -> Html()
23 informacion::BDAlumno -> BDCat -> [(String,String,Float)]
24 Funciones de comparacion y ordenacion
25 Funciones de busqueda buscarAlumno :: [String] -> BDAlumno -> Int -> Condicion -> BDAlumno
26 Fuciones de busqueda buscarAlumno_cat :: [String] -> BDAlumno - >Int -> Condicion -> BDAlumno
27 Funciones de busqueda buscarAlumno_todos :: [String] -> BDAlumno -> Condicion -> BDAlumno
28 Funciones de busqueda incluidoEn :: [String] -> String -> Bool incluido_parcial :: [String] -> String -> Bool
29 Funciones de busqueda busqueda :: [String] -> Int -> Condicion -> Orden -> Cgi()
30 Fucniones de manejo de categorias
31 practica :: Cgi ()
32 Bibliografia (CGI en detalles) (CGI en detalles) /manual5.htm (tutorial online de CGI) /manual5.htm (tutorial online de CGI) /manual5.htm /manual5.htm tml (practica propuesta) tml (practica propuesta) tml tml module AP.Cgi.Lib.HTML (modulo implementado en nuestra facultad) module AP.Cgi.Lib.HTML (modulo implementado en nuestra facultad)