1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.
-
Upload
soledad-barragan -
Category
Documents
-
view
222 -
download
0
Transcript of 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.
![Page 1: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/1.jpg)
11
Programación de Servidores Programación de Servidores WEBWEB
Realizado por : Amine Realizado por : Amine KerzaziKerzazi
![Page 2: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/2.jpg)
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
![Page 3: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/3.jpg)
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 .
![Page 4: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/4.jpg)
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.
![Page 5: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/5.jpg)
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
![Page 6: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/6.jpg)
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.
![Page 7: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/7.jpg)
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.
………………
![Page 8: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/8.jpg)
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
![Page 9: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/9.jpg)
99
La aplicacionLa aplicacion
Ofrecer un formulario para interrogar Ofrecer un formulario para interrogar la base de datos la base de datos
![Page 10: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/10.jpg)
1010
La aplicacionLa aplicacion
Representar los resultados de la Representar los resultados de la consulta en una tablaconsulta en una tabla
![Page 11: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/11.jpg)
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
![Page 12: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/12.jpg)
1212
Base de datosBase de datos
Fichero de alumnosFichero de alumnos
![Page 13: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/13.jpg)
1313
Base de datosBase de datos
Fichero de las categorias de alumnosFichero de las categorias de alumnos
![Page 14: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/14.jpg)
1414
Definiciones de tiposDefiniciones de tipos
Categoria de AlumnosCategoria de Alumnos
![Page 15: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/15.jpg)
1515
Definiciones de tiposDefiniciones de tipos
AlumnosAlumnos
![Page 16: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/16.jpg)
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
![Page 17: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/17.jpg)
1717
leerBDCat :: FilePath -> IO leerBDCat :: FilePath -> IO BDCatBDCat
![Page 18: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/18.jpg)
1818
leerBDAlumno :: FilePath -> IO leerBDAlumno :: FilePath -> IO BDAlumnoBDAlumno
![Page 19: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/19.jpg)
1919
perteneceA :: String -> String -> perteneceA :: String -> String -> BoolBool
![Page 20: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/20.jpg)
2020
tablaAlumno :: BDAlumno -> BDCat -> Orden -> Cgi tablaAlumno :: BDAlumno -> BDCat -> Orden -> Cgi
()()
![Page 21: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/21.jpg)
2121
tabla :: Int -> [(String,String,Float)] -> Html tabla :: Int -> [(String,String,Float)] -> Html ()()
![Page 22: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/22.jpg)
2222
dibujar :: Int -> [(String,String,Float)] -> dibujar :: Int -> [(String,String,Float)] -> Html()Html()
![Page 23: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/23.jpg)
2323
informacion::BDAlumno -> BDCat -> informacion::BDAlumno -> BDCat -> [(String,String,Float)][(String,String,Float)]
![Page 24: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/24.jpg)
2424
Funciones de comparacion y Funciones de comparacion y ordenacionordenacion
![Page 25: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/25.jpg)
2525
Funciones de busquedaFunciones de busqueda
buscarAlumno :: [String] -> BDAlumno buscarAlumno :: [String] -> BDAlumno -> Int -> Condicion -> BDAlumno -> Int -> Condicion -> BDAlumno
![Page 26: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/26.jpg)
2626
Fuciones de busquedaFuciones de busqueda
buscarAlumno_cat :: [String] -> buscarAlumno_cat :: [String] -> BDAlumno ->Int -> Condicion -> BDAlumno ->Int -> Condicion -> BDAlumnoBDAlumno
![Page 27: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/27.jpg)
2727
Funciones de busquedaFunciones de busqueda
buscarAlumno_todos :: [String] -> buscarAlumno_todos :: [String] -> BDAlumno -> Condicion -> BDAlumno -> Condicion -> BDAlumno BDAlumno
![Page 28: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/28.jpg)
2828
Funciones de busquedaFunciones de busqueda
incluidoEn :: [String] -> String -> BoolincluidoEn :: [String] -> String -> Bool
incluido_parcial :: [String] -> String -> incluido_parcial :: [String] -> String -> BoolBool
![Page 29: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/29.jpg)
2929
Funciones de busquedaFunciones de busqueda
busqueda :: [String] -> Int -> busqueda :: [String] -> Int -> Condicion -> Orden -> Cgi()Condicion -> Orden -> Cgi()
![Page 30: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/30.jpg)
3030
Fucniones de manejo de Fucniones de manejo de categoriascategorias
![Page 31: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/31.jpg)
3131
practica :: Cgi ()practica :: Cgi ()
![Page 32: 1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.](https://reader036.fdocuments.es/reader036/viewer/2022081513/5665b4411a28abb57c906d7e/html5/thumbnails/32.jpg)
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)