CGI Common Gateway Interface (interfaz de pasarela común)

Slides:



Advertisements
Presentaciones similares
Introducción a COBHTTPD
Advertisements

Nau Gran dHivern Intr. a la creación y gestión de páginas web Introducción a la web.
Internet y tecnologías web
Fernando Alonso Blázquez Formularios en lenguaje HTML 26 de Febrero de 2004.
Laboratorio Estructuras de datos. HTML. IntroducciónMartha Reyes Villa Práctica no. 1 Introducción a HTML Familiarizarse con los estándares de Internet.
El mecanismo básico de interacción entre el usuario y un sitio web esta dado por el uso de formularios html. El server envía un formulario que el browser.
Repaso desde HTML a XHTML
Desarrollo de Aplicaciones Internet Clase II Universidad de los Lagos 2011.
Jorge de Nova Segundo UD 6:
Capítulo 1 web.
CI-2413 CGI & Compañía.
Tema 9 INTERNET.
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.
Características generales de un servicio web
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.
INTERNET Todos lo usamos pero… alguien sabe como funciona? ¬¬
"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.
JSP Copyright ISIPE – Instituto de Servicios Informáticos para Empresas – Universidad Siglo 21 – Cualquier copia u otro uso debe ser autorizado expresamente.
Introduccion a las páginas WEB HTML
Common Gateway Interface.
Características generales de un servicio Web.
TIPOS DE SERVIDORES 4/2/2017 3:29 PM
Mecanismo de petición y respuesta Prof. Manuel Blázquez Ochando
TECNOLOGÍA IDC Internet Database Connector Trinitario Gómez López.
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.
JSP COOKIES. cookies  Las cookies son datos guardados por los navegadores a instancias del servidor.  Los sitios Web las utilizan con propósitos diversos:
Actividad 8 Equipo 3: o Gemma Cedillo Saucedo. o Alejandra Castillo Almazán. o Adriana Lara Mata. o Jorge Arregoytia García. o Aleida Villegas Rodríguez.
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
Introducción Publicación en Internet con Microsoft Office Sevilla, junio de 2004 SalirIniciar.
Sistemas Distribuidos basados en la web
Introducción a la Programación. Lenguaje de Máquina.
INTRODUCCIÓN A LA PROGRAMACIÓN WEB
ASP.NET es una nueva y potente tecnología para escribir páginas web dinámica. Es una importante evolución respecto a las antiguas páginas ASP de Microsoft.
PHP TODO SOBRE PHP.
El Lenguaje C en CGI El ANSI C, uno de los lenguajes de programación más conocidos, utiliza la función getenv(),definida en el archivo de cabecera stdlib.h,
INTRODUCCIÓN El protocolo http se usa en los sistemas de información distribuidos que necesitan mostrar la información y pasarla por una comunicación.
PROTOCOLO H T T P.
Por: Jorge Aguirre PUERTOS DE UN SERVIDOR WEB.  Un servidor web o servidor HTTP es un programa informático que procesa una aplicación del lado del servidor.
La Web y el HTTP. Antes del año 1990 Internet era usado por InvestigadoresAcadémicosEstudiantes Transferir archivos logearse remotamente Enviar/recibir.
Unidad didáctica 6 Diseño de páginas Web.
Publicación de bases de datos Access en la web
introducción al lenguaje
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.
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.
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.
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.
WORD WIDE WEB Nace a principios de los años 90 en Suiza. Su función es ordenar y distribuir la información que existe en internet. La World Wide Web se.
 Buscador es una página web en la que se ofrece consultar una base de datos en la cual se relacionan direcciones de páginas web con su contenidopágina.
 Claudia Jordan Idrovo.  Son los puntos de enganche para cada conexión de red que realizamos. El protocolo TCP (el utilizado en internet) identifica.
Navegación y comunicación en Internet y uso de las redes sociales
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.
Punto 4 – Configuración de un Servidor Web Juan Luis Cano.
Práctica Profesional PHP.
Manual PHP Básico Camilo Cartagena.
SEGURIDAD EN SERVIDORES WEB (APACHE).
Elementos básicos para sistemas WEB. Que es la WEB Web es una tecnología que opera sobre internet que lleva propuesta desde El sistema de documentos.
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.
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.
Modelo Cliente - Servidor. La Web funciona siguiendo el denominado modelo cliente-servidor, habitual en las aplicaciones que funcionan en una red. Existe.
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.
Transcripción de la presentación:

CGI Common Gateway Interface (interfaz de pasarela común) Gaspar Hernández Estevan

Índice Introducción Cómo funciona Independencia Escribiendo un programa CGI. Variables de entorno. Establecimiento de la comunicación con el cliente Referenciar un CGI Los formularios y CGI Envío de información del servidor al CGI

Introducción a CGI Es de las primeras formas de programación web dinámica. El CGI cambio la forma de manipular información en el web. Antes: relación cliente-servidor mediante plugins y limitada por la velocidad. Es un método para la transmisión de información hacia un compilador instalado en el servidor.

Introducción a CGI FUNCIÓN PRINCIPAL: Añadir una mayor interacción a los documentos web (devuelve información dinámica) que por medio del HTML (se presentan de forma estática). Corre en el servidor  No depende del usuario. Uso: contadores, bases de datos, motores de búsqueda, formularios, generadores de email automático, foros de discusión, chats, comercio electrónico, rotadores y mapas de imágenes, juegos en línea y otros.

Introducción a CGI El procesamiento puede hacerlo totalmente el CGI (Procesamiento Directo). El CGI sirve de puente para otro programa con otro propósito (Procesamiento Indirecto).

Como funciona Funcionalidad de las paginas web que contengan programación CGI: Acción conjunta del Servidor Web y el programa almacenado (script CGI). Script CGI: Programa que se ejecuta en el servidor en respuesta a una solicitud del usuario. Lenguajes de programación: Basic, Java, C, Perl... Deben leer los datos de la entrada estándar Acceder a las variables de entorno Escribir en la salida estándar.

Independencia Independiente de: Hardware Software y SO. Servidor No asume rutas No asume IPs No asume permisos.

Escribiendo un programa CGI Entrada estándar: stdin. Salida estándar: stdout. Se puede generar cualquier tipo de documento. Toda salida del programa CGI debe estar precedida por una cabecera tipo MIME Salida en formato visualizable por el navegador (no siempre).

Escribiendo un programa CGI Cabecera #include <stdio.h> Int main(int argc, char *argv[]) { printf(“Content-type:texyt/html\n”); printf(\n”); printf(“<HTML>\n<BODY>\n”); printf(“Mi primer CGI\n”); printf(“</HTML>\n</BODY>\n”); return 0; } Línea Separación Content-Type:text/html <HTML> <BODY> Mi primer CGI </BODY> </HTML> Cuerpo

Escribiendo un programa CGI Link a otra pagina web: #include <stdio.h> Int main(int argc, char *argv[]) { //… printf(“Location: http://www.ua.es\n”); printf(\n”); return 0; }

VARIABLE DE ENTORNO CGI Transmiten datos acerca de una petición de un servidor al CGI. Variable sin valor o sin definir=NULL. Existen de 3 tipos: Especificas de servidor Especificas de cliente Especificas de la petición

VARIABLE DE ENTORNO CGI: Especificas del servidor Características del servidor: GATEWAY_INTERFACE. -versión del servidor (ej: CGI/1.1) SERVER_NAME. -Nombre del servidor (ej: www.ua.es) SERVER_PORT. -Puerto del servidor donde se recibió la petición (ej:80) SERVER_PROTOCOL. -Nombre del protocolo de petición (ej: HTTP/1.1) SERVER_SOFTWARE. -Nombre del software del servidor (ej:Microsoft- IIS/4.0)

VARIABLE DE ENTORNO CGI: Especificas del cliente Informacion sobre el navegador HTTP_ACCEPT: image/gif, image/jpeg HTTP_ACCEPT_ENCODING: gzip, deflate HTTP_ACCEPT_LANGUAGE: es-ES, en, pdf HTTP_REFERER: http://www.ua.es/index.html HTTP_USER_AGENT: Mozilla/4.7 [en] (Win98; I)

VARIABLE DE ENTORNO CGI: Especificas de la petición Información sobre la petición recibida: CONTENT_LENGTH -Tamaño en números decimales de octetos y cualquier otra entidad adjunta PATH_INFO -Ruta que debe interpretar una aplicación CGI QUERY_STRING -Cadena de búsqueda URL-encoded. REMOTE_ADDR -Dirección IP del agente que hace la petición REMOTE_HOST -Nombre del dominio que realiza la petición REQUEST_METHOD -Metido de petición por el cliente. SCRIPT_NAME -URI para identificar la aplicación CGI

VARIABLE DE ENTORNO CGI: Especificas de la petición Información sobre la petición recibida: CONTENT_TYPE -El tipo MIME de una entidad adjunta Tipos: Aplication -transmiten datos de la aplicación Text -Información textual (ej: plain) Multipart -Partes múltiples de tipos de datos independientes( ej: mixed, alternative.. Message -Un mensaje encapsulado (ej: partial, External-body) Image -Datos de imagen (ej: gif, jpeg) Audio - Datos de audio (ej: basic) Video -Datos de video (ej mpeg)

VARIABLE DE ENTORNO CGI: ACCESO DESDE C #include <stdio.h> char *variable; Variable=getenv(“SERVER_NAME”); }

Establecimiento de la comunicación con el cliente El servidor añade a la respuesta del CGI mas datos para devolver un mensaje HTTP correcto. Si no se quiere que el servidor trate los datos devueltos por el CGI: Añadir el prefijo ‘nph-’(No Parser Header) al nombre del CGI.

Referenciar un CGI Usando etiquetas HTML <a href=“direccion_del_CGI”>texto </a> ej:<a href=“http://www.zonaweb.es/cgi-bin/hora.cgi”>Dime la hora </a> Usando un formulario(lo más habitual) <form action=“direccion_del_CGI”><!-- elementos del formulario--></form>

LOS FORMULARIOS Y CGI Uso de GET Uso de POST Se utiliza para obtener un fichero o recurso La vble de entorno QUERY_STRING lee los datos Tamaño limitado: 256 caracteres No registra cada petición Uso de POST Se usa para enviar datos al servidor Los datos se leen por la entrada estandar Tamaño ilimitado (CONTENT_LEGTH devuelve el tamaño) Registra cada petición

LOS FORMULARIOS Y CGI El navegador envía los datos de la siguiente forma: ej: control1=valor1& control2=valor2& control3=valor3 Para campos sin valor: ej control1=& control2=valor2& control3=valor3 Caracteres para dividir los datos: &: Separa las diferentes parejas campo/valor. =: Separa el campo de su valor %xx: identifica los caracteres especiales +: Para codificar los espacios.

Envio de informacion del servidor al CGI: Línea de comandos ? :Separa el CGI de los argumentos + : separa los argumentos entre sí. Cada palabra es un parámetro que le llega al CGI (argv). Los datos se encuentran en QYERY_STRING. <a href=“/cgi-bin/cgi?arg1+arg2+arg3>enlace</a>

Envio de informacion del servidor al CGI: Entrada estandar Envío mediante un formulario con POST. Se recibe por la entrada estándar Uso de las vbles: CONTENT_LENGTH CONTENT_TYPE

Utilizando la vble de entorno PATH_INFO. Envio de informacion del servidor al CGI: Información de ruta de directorios Utilizando la vble de entorno PATH_INFO. <a href=“/cgi-bin/cgi/MasInformación?arg1+arg2+arg3>enlace</a>

Envio de informacion del servidor al CGI: URL Envio mediante formularios con GET. Formato: nom_cgi?campo1=valor1&camop2=valor2 Los datos los recibe la vble QUERY_STRING. Ej: <a href=programaCGI.exe?arg1=1&arg2=5”>pincha aquí </a>

Ejemplo con formulario: <html> <head><title>ejemplo de CGIs con Formulario </title></head> <body> <form action="form.cgi" method="get"> <tr> <td><b>Ejemplo de Formulario</b><br> <br> </td> </tr> <tr><td>Nombre</td> <td><input type="text" maxlength="160" size="40" name="nombre"> <tr><td>Color</td> <td><SELECT NAME="color"> <OPTION>Blanco <OPTION>Azul <OPTION>Rojo </SELECT > </td> </tr> <tr><td>País</td> <td><SELECT NAME="pais"> <OPTION value="cl">Francia <OPTION value="es">España <OPTION value="zz">Portugal </SELECT > <br> <tr> <td><INPUT TYPE="submit" VALUE="Enviar datos"> </table> </form> </body> </html>

Ejemplo con formulario: #include <stdio.h> #include "cgiforms.h" #define LARGO_MAXIMO 1024 void imprimeVariable( char *lpzNombre ); main(){ printf("Content-Type: text/html\n\n"); printf("<html><body bgcolor=#ffffff text=#ffffff>\n"); printf("<p align=center><table cellpadding=4 bgcolor=000000>\n"); printf("<tr><td color=000080 align=center>"); printf("<b>Campos recibidos desde el Form</b></td></tr>\n"); imprimeVariable( "nombre" ); imprimeVariable( "color" ); imprimeVariable( "pais" ); printf("</table>\n"); printf("</body></html>"); return( 0 ); } void imprimeVariable( char *lpzNombre ){ /*** recibe el nombre de la variable yla imprime formateada como celdas de una tabla***/ char lpzResultado[LARGO_MAXIMO]; printf("<tr>\n"); printf("<td bgcolor=\"#9999FF\" valign=top>%s</td>\n",Nombre); printf("<td bgcolor=\"#DDDDFF\" valign=top><font color=#000000>"); /***aqui pide la variable y luego la imprime***/ formPideVariable( lpzNombre,lpzResultado,LARGO_MAXIMO); printf(¨[%s]",lpzResultado); printf("</td>\n"); printf("</tr>\n");

Ejemplo con formulario:

?