5.44. Perl CGI programming

发布时间 : 2025-10-25 13:33:03 UTC      

Page Views: 10 views

5.44.1. 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.

5.44.2. 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.

5.44.3. CGI architecture diagram #

Image0

5.44.4. 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 

5.44.5. 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 ''; Print ''; Print ' 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``

5.44.6. 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 
《地理信息系统原理、技术与方法》  97

最近几年来,地理信息系统无论是在理论上还是应用上都处在一个飞速发展的阶段。 GIS被应用于多个领域的建模和决策支持,如城市管理、区划、环境整治等等,地理信息成为信息时代重要的组成部分之一; “数字地球”概念的提出,更进一步推动了作为其技术支撑的GIS的发展。 与此同时,一些学者致力于相关的理论研究,如空间感知、空间数据误差、空间关系的形式化等等。 这恰好说明了地理信息系统作为应用技术和学科的两个方面,并且这两个方面构成了相互促进的发展过程。