Common Gateway Interface (Interfaz Público de Pasarela) Francisco Rosales.

Slides:



Advertisements
Presentaciones similares
Internet y tecnologías web
Advertisements

Fernando Alonso Blázquez Formularios en lenguaje HTML 26 de Febrero de 2004.
CGI I La mayor parte de los elementos HTML de que disponemos permite al visitante visualizar los contenidos de un sitio, pero no interactuar con él. Dicho.
"java del lado del servidor" Servlet y JSP Java Server Pages.
OBJETO REQUEST. El objeto Request Por qué el objeto request Funcionamiento Colecciones: – Transferencia de variables por URL –Transferencia de variables.
CGI Common Gateway Interface (interfaz de pasarela común)
Formularios en lenguaje HTML 7 de Abril de Índice Generalidades Definición en HTML Elementos Formas de envío: métodos GET y POST Recepción y tratamiento.
CGI.   Cuando el World Wide Web inició su funcionamiento como lo conocemos, empezando a tomar popularidad aproximadamente en 1993, solo se podía apreciar.
FORMULARIOS HTML TIPOS DE ELEMENTOS DE FORMULARIO n Campos de entrada de datos. n Campos de datos de varias líneas. n Listas. n Botones. n Textos descriptivos.
Ingeniero Anyelo Quintero
Estructura de Documento Atributos 1. Atributos Básicos id, class, style, title 2. Atributos para Internacionalización lang, xml:lang, dir 3. Atributos.
1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.
Desarrollo de Aplicaciones Web
PROTOCOLO H T T P.
      Protocolo de transferencia de Hipertexto, empleado para acceder a documentos de hipermedia  El protocolo nació en el CERN, como base.
Formularios La mayor parte de los elementos HTML de que disponemos permite al visitante visualizar los contenidos de un sitio, pero no interactuar con.
© Francisco Rosales Diseño de Servicios Web Common Gateway Interface1 Common Gateway Interface (Interfaz Público de Pasarela) Francisco Rosales.
Servidor web Alumna: María Verónica Mancheno Materia: Gestión de Información Web Profesor: José Medina Moreira.
 Claudia Jordan Idrovo.  Son los puntos de enganche para cada conexión de red que realizamos. El protocolo TCP (el utilizado en internet) identifica.
Michael Nelson Rodríguez # Tedu 220. Introducción Existe una extensa lista de nombres y frases que se utilizan como metodo para entender los diferentes.
SEGURIDAD EN SERVIDORES WEB (APACHE).
Planificación Curso UNIDAD 1. INTRODUCCIÓN A LOS SERVICIOS EN RED UNIDAD 2. SERVICIOS DHCP UNIDAD 3. SERVICIOS DNS UNIDAD 4. SERVICIOS DE ACCESO REMOTO.
Introducción Principios de Programación Web Aplicaciones Web con JSP y Servlets de Java.
Principios, teoría y práctica sobre los conceptos de HTML básicos.
Aplicación con Angular, Ionic y PHP Por: Luis Salvador.
¿Que es PHP? PHP Hypertext Preprocessor Y solo porque me quiero hacer el profesor cool y meter un chiste: PHP también significa: Para Hacer Páginas.
ACTIVOS DIGITALES : APROXIMACIÓN AL CONCEPTO DE GESTIÓN, ALMACENAMIENTO Y DISTRIBUCIÓN DE ACTIVOS MULTIMEDIA EN LAS ORGANIZACIONES Manuel Cobo Fernández.
¿Que es PHP? PHP Hypertext Preprocessor Y solo porque me quiero hacer el profesor cool y meter un chiste: PHP también significa: Para Hacer Páginas.
Funciones en lenguaje C 2 Funciones Definición: – Las funciones son los bloques de construcción básicos de C. Dentro de ellas se da toda la actividad.
BASE DE DATOS EN LA WEB POR- OSIRYS MARCIAGA JESUS NIETO.
Por: Sebastián Marín Carlos Jaramillo Grado: 11ºc
Mejoras Relevantes Contenido Extension Pack ( )
HERRAMIENTAS DE INFORMATICA
Como crear una pagina web
Como crear una pagina web
CÓDIGO HTML PRESENTADO POR: JHERSON FERNANDO TRUJILLO RUBIO
PHP Hypertext Preprocessor
LOS DIFERENTES LENGUAJES DE PROGRAMACION PARA LA WEB
UNIDAD I: INTRODUCCIÓN AL DISEÑO WEB.
Diseño y Edición de Paginas web
INTERNET Y OTRAS REDES Blanca Romero Silva 2ºGVEC
PAGINA WEB Una página web, o página electrónica, o página digital, o ciberpágina es un documento o información electrónica capaz de contener texto, sonido,
Proceso de resolución de un nombre de dominio
HTML, Editores HTML, Servidores Locales
INTERNET Actividad 3 Herramientas Tareas Ruben Dario Acosta V.
Aplicaciones informáticas Sexto año
Parte 4 HTML.
HTML HTML es un lenguaje de marcado que se utiliza para el desarrollo de páginas de Internet. Se trata de la sigla que corresponde a HyperText Markup.
Arquitectura de Aplicaciones Web
FUNDAMENTOS DE PROGRAMACION EN ENTORNO WEB. Rodrigo Cabello Ing. Informático Director de proyectos Think – Ideas in Motion FUNDAMENTOS.
DISEÑO WEB Sesion 1.
Page 1. Page 2 Los lineamientos básicos que debe contener las paginas HTML.
Sistema de referencia de documentos
Creación de contenidos Web-HTML
Entendiendo PHP En diseño de software en el Front-end es la parte del software que interactúa con los usuarios. Es la persona que se encarga del diseño.
Planificación Curso UNIDAD 1. INTRODUCCIÓN A LOS SERVICIOS EN RED
helppeople Single Sign -On
INFORMATICA. Vamos a hablar de...HTML Conceptos del lenguaje Estructura para documentos Herramientas usadas para crear documentos Buenas prácticas.
Introducción al HTML Colnodo Ariel Barbosa & Sylvia Cadena
Lenguajes del lado del cliente
HTML.
Docente: Valerio Herrera, Luis E. Experiencia Formativa III Semana 4: Servidores Web.
MANEJO DE UBUNTU COMANDOS SHELL / TERMINAL.
Curso Creación Pàginas Web
ARQUITECTURA DE UN NAVEGADOR WEB ESTO SE REFIERE AL SOFTWARE O HARDWARE? Un navegador web es un programa que codifica y decodifica una serie de reglas,
Intr. a la creación y gestión de páginas web
INTERNET Todos lo usamos… Alguien sabe como funciona?
Historia del HTML y de Internet Tim Berners-Lee creó la primera versión del lenguaje HTML en 1989, junto con su equipo también desarrollaron el protocolo.
DIAGRAMAS DE FLUJO. D I A G R A M A DE F L UJ O EL DI AGRAMA DE FLUJO ES LA REPRESENTACIÓN GRÁFICA DE DICHA SE CUENCIA DE INSTRUCCIONES QUE CONFORMAN.
Introducción a la Programación. Modulo 61 Programación Web Programación Web.
Transcripción de la presentación:

Common Gateway Interface (Interfaz Público de Pasarela) Francisco Rosales

2 © Francisco ROSALES Introducción El HTML era algo estático Todo acceso a una hoja, daba el mismo resultado No satisfacía las necesidades de interactividad Documentos de contenido exclusivo para el acceso Se creó el Common Gateway Interface Un estándar que especifica como interconectar aplicaciones externas con servidores de información Ej. un servidor Web

3 © Francisco ROSALES Funcionamiento básico Cuando accedamos a un CGI: Será ejecutado en el servidor en ese instante La información dinámica que produzca será presentada como resultado del acceso Usos: Contadores de accesos a las páginas Anuncios incrustados (banners) Buscadores etc.

4 © Francisco ROSALES Ejemplo Consulta desde el navegador web El usuario: Rellena un formulario HTML y lo envía La acción asociada es URL a un CGI El servidor Web: Ejecuta (localmente) el CGI con los datos del formulario El programa CGI: Accede a la BD y, con el resultado, produce un documento HTML El servidor Web: Devuelve el documento, casi directamente, al navegador

5 © Francisco ROSALES Ventajas e Inconvenientes Ventajas Mejora la seguridad de los usuarios No tendrán que ejecutar programas extraños en su máquina Simplifica la gestión de los servicios Al estar centralizado, se eliminan los problemas de mantenimiento y distribución de las aplicaciones Inconvenientes Puede comprometer la seguridad del servidor Dejar que cualquiera ejecute algo en el servidor, aunque lo hayamos escrito nosotros, no es muy seguro

6 © Francisco ROSALES Precauciones de seguridad Todos los programas CGI suelen residir en un directorio especial del servidor: /cgi-bin Bajo control del webmaster El Administrador puede relajar esta restricción, pero no suele hacerse

7 © Francisco ROSALES Lenguajes de Programación No hay restricción Compilables: C, C++, Fortran, etc. El ejecutable deberá estar en /cgi-bin Interpretados: El script, directamente ejecutable, en /cgi-bin Es mucho más fácil depurar, modificar y mantener Se usa mucho perl Muy potente pero bastante complejo

8 © Francisco ROSALES #!/bin/sh echo "Content-type: text/plain" echo "" set -v ### Activa modo verbose del shell exec 2>&1 ### Dirige el error a la salida estd. echo "$0" # Nombre del mandato echo # Argumentos de invocación id # Identidad del proceso pwd # Directorio actual de trabajo env # Variables de entorno cat # Información en la entrada estandard # FIN Ejemplo: test.cgi

9 © Francisco ROSALES Para que funcione como CGI El servidor Web distingue un CGI de cualquier otro fichero convencional: Por su ubicación: Debe residir en /cgi-bin del sistema (o de la cuenta del usuario) Por su extensión: El nombre del fichero debe tener extensión.cgi Por sus permisos: Lectura y ejecución para todo el mundo

10 © Francisco ROSALES ¿Cómo invocar un CGI? I Directamente desde el Navegador Indicando su URL en el campo Location Al recorrer un hipervínculo Etiqueta A referida al URL Enlace al CGI de pruebas

11 © Francisco ROSALES ¿Cómo invocar un CGI? II Como origen de una imagen La salida del CGI debe ser de tipo imagen Es la forma de incrustar banners <IMG SRC="/cgi-bin/banner" ALT="Inserte aquí su publicidad">

12 © Francisco ROSALES ¿Cómo invocar un CGI? III Como acción asociada a un formulario HTML Es el uso más común de los CGI El método de invocación (GET o POST) establece la manera en que el CGI recibirá los parámetros <FORM ACTION="/cgi-bin/test.cgi" METHOD="GET" >

13 © Francisco ROSALES Paso de argumentos NO los reciben de la línea de mandatos Pueden indicarse en el URL Al CGI le llegan como variables de entorno PATH_INFO Texto a partir del nombre hasta la 1ª '?' Se suele usar para indicar caminos de búsqueda QUERY_STRING Texto desde la 1ª '?' hasta el final Este texto debe estar codificado

14 © Francisco ROSALES Codificación URL Los espacios en blanco se sustituyen por el carácter '+' Otros caracteres especiales, por su valor hexadecimal con el prefijo '%'

15 © Francisco ROSALES Método de invocación I Todo formulario HTML debe indicar: La acción asociada: un programa CGI El método de invocación: GET o POST Los datos del formulario le llegarán al CGI: Como un conjunto de pares nombre=valor Donde nombre, será el del atributo NAME de cada etiqueta INPUT o SELECT Los pares llegarán uno detrás de otro, separados por el carácter '&'

16 © Francisco ROSALES Método de invocación II REQUEST_METHOD Esta variable de entorno indicará el método de invocación empleado Si fue GET Los datos llegarán (codificados) en la variable QUERY_STRING Si fue POST Llegarán por la entrada estándar La variable CONTENT_LENGTH indicará el número de bytes de información

17 © Francisco ROSALES Entorno de ejecución La especificación define unas variables que el servidor Web debe poner en el entorno de ejecución de los CGI Se escriben en mayúsculas Un valor nulo equivale a su no definición

18 © Francisco ROSALES Identificación del cliente REMOTE_ADDR Dirección IP del cliente que invocó al CGI REMOTE_HOST Dirección completa del cliente que invocó al CGI REMOTE_IDENT Si el sistema cliente lo permite identificar usuarios, indicará su nombre No deberá ser usado nunca como autenticación SCRIPT_NAME URL completo al programa CGI

19 © Francisco ROSALES Identificación del servidor SERVER_NAME Nombre del servidor como se indicó en el URL SERVER_PORT El número de puerto del servicio web SERVER_SOFTWARE Nombre y versión del software que implementa el servidor

20 © Francisco ROSALES Sobre la conexión I GATEWAY_INTERFACE Versión del protocolo CGI implementado DOCUMENT_ROOT Directorio raíz del servicio Web HTTP_HOST Nombre del servidor

21 © Francisco ROSALES Sobre la conexión II HTTP_REFERER URL de la página desde la que se accedió al CGI HTTP_USER_AGENT Identificación del navegador usado por el cliente HTTP_COOKIE Cookie del usuario, si es que tiene HTTPS Activa si el CGI fue invocado a través de un servidor seguro

22 © Francisco ROSALES Parámetros de entrada I PATH_INFO Camino extra expresado en el URL del CGI PATH_TRANSLATED Es la concatenación de DOCUMENT_ROOT y PATH_INFO REQUEST_METHOD Método de invocación utilizado QUERY_STRING Parámetros pasados a un CGI mediante GET

23 © Francisco ROSALES Parámetros de entrada II CONTENT_LENGTH Tamaño del la información presente en la entrada estándar o NULL Puede venir de un POST o de un PUT de HTTP CONTENT_TYPE Indica el tipo MIME de la información presente en la entrada estándar Si vale NULL, se deberá deducir el tipo, y si no se consigue se asumirá application/octet-stream

24 © Francisco ROSALES ¿Qué puede devolver? Todo CGI deberá emitir por la salida estándar su resultado Un documento MIME completo O la localización del documento resultante

25 © Francisco ROSALES Devolución de un documento 1ª linea: Content-Type: tipo MIME 2ª línea: en blanco Resto: documento completo del tipo indicado text/plain, image/gif, etc. Content-Type: text/html Título del documento dinámico....

26 © Francisco ROSALES Devolución de una dirección 1ª línea: Location: URL local o remoto 2ª línea: en blanco URL local: el propio servidor lo seguirá URL remoto: el cliente ha de seguirlo Location: Location: /pub/WWW/

27 © Francisco ROSALES CGI con salida NPH Non Process Header Exige el prefijo nph- El servidor conecta CGI y cliente y no filtra El CGI toma control total de la conexión HTTP Debe incluir al menos una línea indicando el protocolo y el estado del acceso realizado HTTP/ Todo fue bien Content-Type:

28 © Francisco ROSALES Direcciones de interés The Common Gateway Interface CGI Made Really Easy The World Wide Web Security FAQ Multitud de referencias Lista de enlaces relativos a CGIs CGI Programming 101