Transferring the Form Data
Parameters to a CGI program are transferred either in
the URL or in the body text of the request. The method used to pass
parameters is determined by the method
attribute to the <form>
tag. The GET method says to
transfer the data within the URL itself; for example, under the GET
method, the browser might initiate the HTTP transaction as
follows:
GET /cgi-bin/guestbook.pl?firstname=Joe&lastname=Schmoe HTTP/1.0
The POST method says to use the body portion of the HTTP request to pass parameters. The same transaction with the POST method would read as follows:
POST /cgi-bin/guestbook.pl HTTP/1.0
... [More headers here]
firstname=Joe&lastname=Schmoe
In both of these examples, you should recognize the firstname
and lastname
variable names that were defined
in the HTML form, coupled with the values entered by the user. An
ampersand (&) is used to separate the variable=value
pairs.
The server now passes the variable=value pairs to the CGI
program. It does this either through Unix environment variables or
in standard input (STDIN). If the CGI program is called with the GET
method, then parameters are expected to be embedded into the URL of
the request, and the server transfers them to the program by
assigning them to theQUERY_STRING environment variable. The CGI program
can then retrieve the parameters from QUERY_STRING as it would read
any environment variable (for example, from the %ENV
hash in Perl). If the CGI program is called with the POST method, parameters ...
Get Perl in a Nutshell, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.