perl | Programación CGI

En Perl, CGI (Common Gateway Interface) es un protocolo para ejecutar scripts a través de requests web. Es un conjunto de reglas y estándares que definen cómo se intercambia la información entre el servidor web y los scripts personalizados. Anteriormente, se usaban lenguajes de secuencias de comandos como Perl para escribir las aplicaciones CGI. Y, el código CGI llamado por el servidor HTTP se denominó script CGI. Más tarde, el crecimiento de la web provocó el aumento de la necesidad de contenido dinámico a través del cual las aplicaciones CGI que estaban escritas en otros lenguajes en lugar de Perl se hicieron más populares y demandadas y se denominaron solo scripts. Los detalles de cómo el servidor ejecuta el script están determinados por el servidor. Las aplicaciones CGI pueden realizar casi cualquier tarea. Por ejemplo, puede acceder a bases de datos, realizar sesiones de telnet, crear páginas web sobre la marcha y generar gráficos, etc.
 

¿Qué es CGI?

Common Gateway Interface (CGI) no es más que un protocolo que define la interacción de los servidores web con algunos programas ejecutables para producir páginas web dinámicas. Básicamente, muestra cómo el servidor web envía información al programa y el programa envía la información de vuelta al servidor web, que a su vez puede enviarse de vuelta al navegador. Entre servidores web y programas externos, se considera como la interfaz de programación estándar.
CGI significa:

Común: interacción con muchos sistemas operativos diferentes.
Puerta de enlace: proporciona el camino a los usuarios para obtener acceso a diferentes programas, como generador de imágenes o bases de datos, etc.
Interfaz: utiliza un método para la interacción con el servidor web.

Los programas CGI pueden enviar muchos tipos de datos o medios, como documentos, imágenes, clips de audio, etc. La mayoría de los sitios web usan CGI con campos para la entrada y las ofertas de contenido dinámico en la Web se realizan principalmente mediante CGI. Es un método a través del cual un servidor web puede obtener/enviar datos desde/hacia bases de datos, documentos y otros programas, respectivamente, y luego presentar esos datos a los espectadores a través de la web.
 

Arquitectura CGI

 

En la figura anterior, con la ayuda del navegador web HTTP (protocolo de transferencia de hipertexto) que se ejecuta en la máquina cliente, intercambia información con el servidor web. Dado que el programa CGI y el servidor web normalmente se ejecutan en el mismo sistema en el que reside el servidor web, dependiendo de la solicitud del navegador, el servidor web proporciona el documento desde su propio directorio de documentos o ejecuta un programa CGI.

Programa CGI simple:
aquí hay un programa simple para comprender el funcionamiento de la programación CGI en Perl. Aquí, obtendremos entradas en el programa HTML y luego ejecutaremos el script CGI para la página web resultante.
Dado que HTML determina una serie de campos de entrada que podemos usar para pasar los datos del usuario al programa CGI. Aquí, está el formulario HTML que hace uso de estos campos de entrada como campo de texto, lista desplegable, casillas de verificación y un botón de envío también para enviar los datos del usuario al servidor web.

<html>
<head>
    <title>GfG Test Example Form</title>
</head>
<body>
    <h1>CGI-Example Form</h1>
    <h3><p>Information Required.</p></h3>
    <form action="/cgi-bin/script.pl" method="Post">
    <table>
        <tr>
        <td>Name:</td>
        <td><input type="text" name="name"><td>
        </tr>
        <tr>
        <td>Gender:</td>
        <td><select name="gender" size="1">
            <option>Female</option>
            <option>Male</option>
            <option>Transgender</option>
        </select></td>
        </tr>
        <tr>
            <td>Profession:</td>
            <td><input type="text" name="profession"><td>
        </tr>
        <tr>
        <td>Sports:</td>
            <td><input type="checkbox" name="sport"
                    value="Cricket">Cricket
                <input type="checkbox" name="sport"
                    value="Hockey">Hockey
                <input type="checkbox" name="sport"
                    value="TableTennis">TableTennis
                <input type="checkbox" name="sport"
                    value="Football">Football</td>
        </tr>
        <tr>
        <td colspan="2"><input type="submit"></td>
        </tr>
    </table>
    </form>
</body>
</html>                    

NOTA: Cada uno de los elementos de entrada en el formulario HTML tiene un atributo de nombre que es importante cuando necesitamos acceder a los datos. Y todos los elementos de entrada están dentro de la etiqueta <form>. Junto con eso, la etiqueta <form> también tiene un atributo de «acción» que determina el script CGI que se llamará al enviar el formulario.

Script Perl-CGI para el formulario anterior:

#!"c:\xampp\perl\bin\perl.exe"
  
use strict;
use CGI ':standard';
  
my $name = param('name');
my $gender = param('gender');
my $profession = param('profession');
my @sports = param('sport');
  
my $list;
  
if (@sports) 
{
    $list = join ', ', @sports;
} 
else 
{
    $list = 'Null';
}
  
print header,
start_html(-title=>$name),
h1("Hello, $name"),
h3 p('You have Submitted the following Data:'),
h4 table(Tr(td('Name:'),
h4 td($name)),
h4 Tr(td('Gender:'),
h4 td($gender)),
h4 Tr(td('Profession:'),
h4 td($profession)),
h4 Tr(td('Sports:'),
h4 td($list))),
end_html;

CGI.pm: CGI.pm (Use CGI;) es un módulo Perl grande y ampliamente utilizado para programar aplicaciones web CGI, que proporciona una API consistente para recibir y procesar la entrada del usuario. Necesitamos escribir un script Perl para devolver un encabezado de respuesta HTTP (tipo de contenido: html/texto) y HTML en el cuerpo, pero CGI.pm lo maneja fácilmente para nosotros (no es necesario codificar el encabezado de respuesta HTTP) .
Tiene una función llamada «param» que devuelve los detalles/información sobre los datos que hemos pasado al script. Devuelve los valores asociados a ese nombre cuando se le da el nombre de un parámetro. Los nombres de los elementos de entrada en la página del formulario HTML son los nombres de los parámetros CGI.

NOTA: Después de enviar el formulario, la página web que obtendremos se muestra a continuación. Si observa en el cuadro de URL del navegador web, verá que la URL se ha cambiado ahora.

Publicación traducida automáticamente

Artículo escrito por akshatyadav y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *