Perl CGI programming


Release date:2023-10-21 Update date:2023-10-21 Editor:admin View counts:416

Label:

Perl CGI programming

What is CGI?

CGI is currently maintained by NCSA. NCSA defines CGI as follows:

CGI (Common Gateway Interface), a universal gateway interface, is a program that runs on a server, such as a HTTP server, and provides an interface withclient HTML pages.

Web browsing

To better understand how CGI works, we can start from clicking a link or URLprocess on a web page:

  • 1.Use your browser to access URL and connect to the HTTP web server.

  • 2.After receiving the request information, the Web server parses the URL and finds whether the accessed file exists on the server. If there is a content of the returned file, an error message is returned.

  • 3.The browser receives information from the server and displays the received files or error messages.

CGI programs can be Python scripts, PERL scripts, SHELL scripts, C or C++ programs, etc.

CGI architecture diagram

Image0

Web server support and configuration

Before you do CGI programming, make sure your Web server supports CGI and isconfigured with CGI handlers.

Apache supports CGI configuration:

Set up the CGI directory:

ScriptAlias /cgi-bin/ /var/www/cgi-bin/

All HTTP server execution CGI programs are saved in a preconfigured directory. This directory is called the CGI directory, and by convention, itis named /var/www/cgi-bin catalogue.

The extension of the CGI file is .cgi Perl can also be used .pl extension name.

By default, the Linux server configures the cgi-bin in the directory for /var/www .

If you want to specify a different directory to run the CGI script, you can modify it httpd.conf configuration file, as follows:

<Directory "/var/www/cgi-bin">
   AllowOverride None
   Options +ExecCGI
   Order allow,deny
   Allow from all
</Directory>

In AddHandler Add in .pl suffix so that we can access the .pl of the Perl script file at the end:

AddHandler cgi-script .cgi .pl .py

The first CGI program

Let’s create a test.cgi file, the code is as follows:

Test.cgi code

#/ Usr/bin/perlprint "Content type: text/html r n r n"; Print '<HTML>'; Print '<head>'; Print '<meta
Charset="utf-8">'; Print '<title>Rookie Tutorial (runoob. com)</title>'; Print '</head>'; Print '<body>'; Print '<h2>Hello
Word</ H2>'; From the first CGI in the rookie tutorial
Program</ p> '; Print '</body>'; Print '</html>'; 1;

Then open http://localhost/cgi-bin/test.cgi through a browser, and the output is as follows:

Image1

The output attribute of the first line of the script "Content-type:text/html\r\n\r\n" is sent to the browser, and the browser is informed that the displayed attribute type is text/html``

HTTP header

In the attributes of the test.cgi file "Content-type:text/html" . That is, part of the HTTP header, which is sent to the browser to tell the browser the content type ofthe file.

The format of the HTTP header is as follows:

HTTP Field Name: Field Properties

For example:

Content-type:text/html\r\n\r\n

Powered by TorCMS (https://github.com/bukun/TorCMS).