Most of the information needed by CGI programs is made available
via Unix environment variables. Programs can access this information
as they would any environment variable (via the %ENV
hash in Perl).
The table below lists environment variables commonly available
through CGI. However, since servers occasionally vary on
the names of environment variables they assign, check with your
own server documentation for more information.
Here's a simple Perl CGI script that uses environment variables to display various information about the server:
#!/usr/local/bin/perl
print << EOF
Content-type: text/html
<HTML>
<HEAD><TITLE>About this Server</TITLE></HEAD>
<BODY><H1>About this Server</H1>
<HR><PRE>
Server Name: $ENV{'SERVER_NAME'}<BR>
Running on Port: $ENV{'SERVER_PORT'}<BR>
Server Software: $ENV{'SERVER_SOFTWARE'}<BR>
Server Protocol: $ENV{'SERVER_PROTOCOL'}<BR>
CGI Revision: $ENV{'GATEWAY_INTERFACE'}<BR>
<HR></PRE>
</BODY></HTML>
The preceding program outputs five environments as
an HTML document. In Perl, you can access
the environment variables with the %ENV hash.
Here's typical output of the program:
<HTML> <HEAD><TITLE>About this Server</TITLE></HEAD> <BODY><H1>About this Server</H1> <HR><PRE> Server Name: www.whatever.com Running on Port: 80 Server Software: NCSA/1.4.2 Server Protocol: HTTP/1.0 CGI Revision: CGI/1.1 <HR></PRE> </BODY></HTML>