© Francisco Rosales Diseño de Servicios Web Common Gateway Interface1 Common Gateway Interface (Interfaz Público de Pasarela) Francisco Rosales.

Slides:



Advertisements
Presentaciones similares
Nau Gran dHivern Intr. a la creación y gestión de páginas web Introducción a la web.
Advertisements

Internet y tecnologías web
Fernando Alonso Blázquez Formularios en lenguaje HTML 26 de Febrero de 2004.
PRESENTA: Mizrain Cano Chico Profesor: Lic. Albino Petlacalco Ruiz
Enlaces con variables en la URL en PHP Programación en Internet II.
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.
Aplicación informática. formando parte de una red. pone sus recursos a disposición de las demás computadoras(clientes) de la red. Maneja información.
Servicios Web.
SERVICIOS DE TCP/IP.
Ing. Horacio Carlos Sagredo Tejerina
Tema: Técnicas Básicas Excel (III) Trucos, opciones y personalización de Excel Índice: 1 Vínculos absolutos y relativos, conectando datos de Excel con.
"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)
JSP Copyright ISIPE – Instituto de Servicios Informáticos para Empresas – Universidad Siglo 21 – Cualquier copia u otro uso debe ser autorizado expresamente.
Características generales de un servicio Web.
Mecanismo de petición y respuesta Prof. Manuel Blázquez Ochando
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.
Al término de la clase, el alumno reconoce las ventajas de usar JAVASCRIPT para un proyecto web.
Tecnologías para el desarrollo de aplicaciones Web
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.
WORLD WIDE WEB Conceptos básicos.
Introducción Publicación en Internet con Microsoft Office Sevilla, junio de 2004 SalirIniciar.
1 Programación de Servidores WEB Realizado por : Amine Kerzazi Realizado por : Amine Kerzazi.
Desarrollo de Aplicaciones Web
PHP TODO SOBRE PHP.
HERNANDEZ RAMIREZ CAROLINA CONALEP IXTAPALUCA 236.
OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA ING. MARISCAL.
Lenguajes de programación Web
PROTOCOLO H T T P.
“SERVLETS”. Paola Rojas Contreras Juan Villarroel Leiva José Miguel Perez V. Departamento de Electrónica.
DESARROLLO DE PÁGINAS EN EL WEB Preparado por Prof. Edgar Lopategui Corsino.
Unidad didáctica 6 Diseño de páginas Web.
LENGUAJES DE PROGRAMACIÓN
Publicación de bases de datos Access en la web
Ihr Logo PHP Parte 4 “manejo de formularios”. Your Logo Formularios  El proceso para el manejo de FORMULARIOS html requiere generalmente dos páginas,
Conceptos básicos sobre Internet
      Protocolo de transferencia de Hipertexto, empleado para acceder a documentos de hipermedia  El protocolo nació en el CERN, como base.
PAGINAS WEB.
WORLD WIDE WEB Lenguaje HTML
Formularios La mayor parte de los elementos HTML de que disponemos permite al visitante visualizar los contenidos de un sitio, pero no interactuar con.
Los siguientes términos y acrónimos son un resumen de las tecnologías web actuales: ASP (Active Server Pages)  Páginas de servidor activas.  Tecnología.
Act. #8 Equipo #2 Hipertexto Servidores web Protocolos http Lenguaje Html Lenguaje Dhtml Lenguaje Asp Lenguaje JAVA SCRIPT.
Gabriel Montañés León. RSS es el acrónimo de Really Simple Sindication (Sindicación Realmente Simple). Es un formato basado en el lenguaje XML que permite.
Introducción al Lenguaje. ¿ Qué es PHP ? O Hypertext Pre-processoes (PHP) es un lenguaje de "código abierto" interpretado, de alto nivel, embebido en.
 Este protocolo opera a través de solicitudes y respuestas, entre un "cliente" y un "servidor". El cliente para los usuarios es el navegador web, usado.
Servidor web Alumna: María Verónica Mancheno Materia: Gestión de Información Web Profesor: José Medina Moreira.
Internet y Navegadores Unidad 5.  WWW World wide web Literalmente "tela de araña mundial", más conocida como web.  HTML Lenguaje de Marcado de HyperTexto.
La información que se mueve en la red es de tipo multimedia: unión de imagen, sonido, vídeo y CD-ROM en el ordenador. El hipertexto es un documento.
 Claudia Jordan Idrovo.  Son los puntos de enganche para cada conexión de red que realizamos. El protocolo TCP (el utilizado en internet) identifica.
Introducción a los Sistemas de Computo
Prof. Carlos Arca Alarcón
Navegación y comunicación en Internet y uso de las redes sociales
File Transfer Protocol.
Navegadores web Tema 4 SRI Vicente Sánchez Patón I.E.S Gregorio Prieto.
Búsqueda de Información en Internet
Unidad 2: Tareas básicas de InfoPath 2010
Práctica Profesional PHP.
SEGURIDAD EN SERVIDORES WEB (APACHE).
Introducción al Lenguaje. ¿Qué es PHP? O Es un lenguaje de programación que es interpretado por un servidor web. O El lenguaje es genérico. PHP está orientado.
Internet Internet es una red de alcance mundial, compuesta por redes de datos privadas y públicas que se comunican entre si, independientemente del hardware.
Integrante: Mariana Alcalá Hdz María del Carmen Andrade G. Alondra E. García Mtz Joselyn Gpe García V. Antonio de Jesús Hdz R. Cristian Jesús Ruvalcaba.
UD 2: “Instalación y administración de servicios de configuración automática de red” Protocolo DHCP Luis Alfonso Sánchez Brazales.
Administración de Sitios Web Introducción al Lenguaje PHP
BUSINESS T&G Think & Grow Uniclass Gestión Documental Solución Web para Mejorar la Captura y Gestión.
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.
Common Gateway Interface (Interfaz Público de Pasarela) Francisco Rosales.
Transcripción de la presentación:

© Francisco Rosales Diseño de Servicios Web Common Gateway Interface1 Common Gateway Interface (Interfaz Público de Pasarela) Francisco Rosales

© Francisco Rosales Diseño de Servicios Web Common Gateway Interface2 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

© Francisco Rosales Diseño de Servicios Web Common Gateway Interface3 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.

© Francisco Rosales Diseño de Servicios Web Common Gateway Interface4 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

© Francisco Rosales Diseño de Servicios Web Common Gateway Interface5 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

© Francisco Rosales Diseño de Servicios Web Common Gateway Interface6 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

© Francisco Rosales Diseño de Servicios Web Common Gateway Interface7 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

© Francisco Rosales Diseño de Servicios Web Common Gateway Interface8 #!/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

© Francisco Rosales Diseño de Servicios Web Common Gateway Interface9 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

© Francisco Rosales Diseño de Servicios Web Common Gateway Interface10 ¿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

© Francisco Rosales Diseño de Servicios Web Common Gateway Interface11 ¿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">

© Francisco Rosales Diseño de Servicios Web Common Gateway Interface12 ¿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" >

© Francisco Rosales Diseño de Servicios Web Common Gateway Interface13 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

© Francisco Rosales Diseño de Servicios Web Common Gateway Interface14 Codificación URL Los espacios en blanco se sustituyen por el carácter '+' Otros caracteres especiales, por su valor hexadecimal con el prefijo '%'

© Francisco Rosales Diseño de Servicios Web Common Gateway Interface15 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 '&'

© Francisco Rosales Diseño de Servicios Web Common Gateway Interface16 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

© Francisco Rosales Diseño de Servicios Web Common Gateway Interface17 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

© Francisco Rosales Diseño de Servicios Web Common Gateway Interface18 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

© Francisco Rosales Diseño de Servicios Web Common Gateway Interface19 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

© Francisco Rosales Diseño de Servicios Web Common Gateway Interface20 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

© Francisco Rosales Diseño de Servicios Web Common Gateway Interface21 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

© Francisco Rosales Diseño de Servicios Web Common Gateway Interface22 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

© Francisco Rosales Diseño de Servicios Web Common Gateway Interface23 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

© Francisco Rosales Diseño de Servicios Web Common Gateway Interface24 ¿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

© Francisco Rosales Diseño de Servicios Web Common Gateway Interface25 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....

© Francisco Rosales Diseño de Servicios Web Common Gateway Interface26 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/

© Francisco Rosales Diseño de Servicios Web Common Gateway Interface27 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:

© Francisco Rosales Diseño de Servicios Web Common Gateway Interface28 Direcciones de interés The Common Gateway Interface CGI Made Really Easy The World Wide Web Security FAQ faq.html Multitud de referencias net/World_Wide_Web/CGI___Common_Gateway_In terface/ Lista de enlaces relativos a CGIs CGI Programming 101