La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Introducción a COBHTTPD

Presentaciones similares


Presentación del tema: "Introducción a COBHTTPD"— Transcripción de la presentación:

1 Introducción a COBHTTPD

2 Definición de COBHTTPD
COBHTTPD es un servidor WEB, el cual se encarga de “servir” archivos que son solicitados por los “navegadores” usando el protocolo http. Tiene incorporadas también funciones especiales para ejecutar internamente programas COBOL. Al ser un servidor WEB no necesitaremos de usar programas adicionales como APACHE o IIS, pues COBHTTPD mismo cubre estas tareas.

3 Flujo de una solicitud WEB
Navegador (cliente) COBHTTPD (servidor) Las operaciones que realiza el servidor son muy extensas, pero aquí se pone un pequeño resumen solo para explicar lo que sucede a grandes rasgos en cada petición Dirección: Abre comunicación Recibe petición Localiza archivo publico Carga en Memoria 1) Headers de retorno Envía Headers Envía Contenido Cierra comunicación Recibe archivo Parsea y analiza código Renderiza y muestra Si necesita mas archivos, hace solicitudes independientes <img> 2) Lo interesante del navegador, es que al recibir un archivo html, parsea/analiza, y si necesita otro archivo que esta en el servidor, realiza otra petición para el nuevo archivo

4 Flujo de una solicitud WEB
Supongamos que tenemos una pagina llamada: resumen.html, con el contenido: <html> <head><title>Resumen de Ventas</title></head> <body> <img src=“/images/logo.gif”> <a href=“/graficas/grafica.jpg”>Ver Graficas</a> </body> </html> Si analizamos el contenido del html, encontramos que necesita del archivo /images/logo.gif El archivo /graficas/grafica.jpg no es necesario para esta pagina, pues este esta como un hipervinculo, es decir, este archivo se pedira solo hasta que se le de click La primer operación del navegador seria pedir la pagina resumen.html El navegador al parsear y analizar, encontrara que tambien necesita el archivo /images/logo.gif, por eso hace una nueva peticion para traer este archivo Operaciones del Cliente 1) Direccion: 2) Pedir al servidor:

5 Flujo de una solicitud COBOL
Navegador (cliente) COBHTTPD (servidor) Dirección: Abre comunicación Valida proyecto/programa Conver datos HTML-CBL Ejecuta programa 1) Ante una llamada de un programa, el servidor valida que el programa este registrado para ejecucion, convierte datos, ejecuta y regresa el resultado Recibe resultado Parsea y analiza código Renderiza y muestra Si necesita mas archivos, hace solicitudes independientes <img> 2) Headers de retorno Envía Headers Envía Contenido Cierra comunicación Para el navegador no encontrara diferencia, ya que el resultado lo tratara de la misma manera que si fuera un archivo estatico

6 Solicitud de un Reporte
Navegador (cliente) COBHTTPD (servidor) Dirección: Valida proyecto/programa Conver datos HTML-CBL Ejecuta programa Convert COBVIEW a PDF La diferencia principal radica en la llamada /cobcgi o /cobpdf, adicionalmente, cobhttpd convierte el reporte COBVIEW a PDF para regresarlo 1) Recibe resultado Parsea y analiza código Renderiza y muestra Si necesita mas archivos, hace solicitudes independientes <img> 2) Nuevamente el navegador no encuentra diferencia, ya que el Content-type indica que se trata de un archivo PDF, y usara el plugin adecuado para visualizar el resultado Content-type para PDF Envía Headers Envía Contenido

7 Fundamentos de HTTP (petición)
Estructura de una direccion web (URL) Ejemplo: HTTP es un protocolo que no guarda el estado, es decir, cuando el cliente hace una peticion, la conexión con el servidor es cerrada despues de que el cliente recibe la respuesta. Estructura de una peticion: Ejemplo: Method URL Version headers cuerpo del mensaje GET HTTP/1.1 Host: localhost COBHTTPD soporta el metodo GET y POST, aunque para el programa COBOL es transparente el metodo que se utilice, basicamente se diferencian en la manera en como se encapsulan los datos al ser enviados hacia el servidor. Como se puede apreciar, al hacer una peticion, no solamente se envia la la direccion que se necesita, tambien el navegador envia datos adicionales, estos datos se conocen como Headers. En el cuerpo del mensaje van los valores adicionales cuando el metodo es POST. Una linea en blanco divide los headers del cuerpo del mensaje.

8 Fundamentos de HTTP (petición)
Ejemplo: GET HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */* Accept-Language: es-mx Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR ) Host: localhost Connection: Keep-Alive Todos estos headers son pasados por un navegador hacia el servidor web, para indicarle que cosas acepta, y cuales no, asi como la version del navegador, etc. El servidor web puede aprovechar esta informacion que envia el cliente para saber como responder ante la peticion. Imaginemos a los headers del navegador como un arreglo de varias lineas, todas llenas de informacion del programa cliente, y las cuales son todas enviadas por internet con el fin de hacer una peticion. GET HTTP/1.1

9 Fundamentos de HTTP (respuesta)
Estructura de una respuesta web En la respuesta web que regresa el servidor, tambien hay dos secciones, Headers y Contenido Estructura de una respuesta: Ejemplo: Version 200 OK Content-type: text/html Expires: fecha-de-expiracion Set-Cookie: Cookies-de-sesion Content-Length: tam-Contenido Contenido del resultado HTTP/ OK Content-type: text/html Set-Cookie: cobhttpd-var Content-Length: 123 <html> <head><title>Pruebas</title></head> <body></body> </html> En la respuesta del servidor, tambien hay headers que regresar al navegador, sirven de informacion para que el navegador haga o no ciertas tareas, no se visualizan pues la parte visual esta en el Contenido del resultado. Tambien una linea en blanco separa los headers del Contenido visual. Entre los headers importantes van: Set-Cookie – para almacenar un valor en el cliente, cobhttpd lo usa para el manejo de sesiones Content-type – le indica al navegador que tipo de contenido regresa, mas adelante veremos otros Content-Length – el tamaño del contenido, cobhttpd lo calcula automaticamente

10 Fundamentos de HTTP (respuesta)
Headers mas importantes Content-type Le dice al navegador que tipo de contenido estamos regresando, no trata igual un text/html que un image/gif. Tipos mas usuales: text/html – paginas web – usado por cobhttpd ante una peticion /cobcgi? application/pdf – reportes PDF – usado por cobhttpd en peticiones /cobpdf? Si regresamos desde nuestro programa COBOL un tipo distinto a estos, debera de ser la primer linea grabada en el archivo de salida (HTTP-OUTPUT), ej: Content-type: text/plain CONTENIDO A REGRESAR AL CLIENTE Los demas headers seran agregados automaticamente por el COBHTTPD

11 Flujo interno de solicitud COBOL
Ejemplo de la peticion: 1.- Checa si existe el proyecto (cobcms) 2.- Checa si el proyecto contiene el programa cmsconte 3.- Carga datos del proyecto (Directorio, Runtime, Tipo de runtime y tipo de proceso) 4.- Recarga datos de sesion, si el mismo usuario ya habia visitado paginas anteriores 5.- Checa que el directorio de programas COBOL exista, si no ERROR 6.- Arma registro de campos necesarios para COBOL, en variable HTTP-DATA-INP Analiza xml, buscando campos necesarios Extrae valor de cada campo de la consulta HTTP Crea archivo unico para esperar contenido HTML del programa COBOL (HTTP-OUTPUT) 7.- Ejecuta Runtime COBOL, usando programa cmsconte 8.- Si la llamada es del tipo /cobpdf, convierte contenido a PDF, usando COBVIEW 9.- Si la llamada es del tipo /cobcgi Analiza archivo de contenido (HTTP-OUTPUT) Si primer linea es Content-type, utiliza este tipo en lugar de text/html Parsea contenido y cambia macros internos (Template, Sesiones, Variables) 10.- Agrega headers necesarios Regresa contenido al cliente

12 F I N


Descargar ppt "Introducción a COBHTTPD"

Presentaciones similares


Anuncios Google