So what does the server do with the data?
Typically, the server will hand the request off to some CGI script that has been specified in the ACTION attribute in the FORM tag that made the request
So the server must execute the CGI script and feed it the data received from the web browser.
To do so, the server creates an associative array that will be used to hold all of the data needed by the script. The array is called %ENV (You'll learn more about accessing and building associative arrays tomorrow).
A good deal of this information will be gleaned from the browser itself and a lot of it is really obscure junk that you will rarely use. However, for your reference, the following table outlines the Environment variables prepared by the server
|AUTH_TYPE||Specifies the authentication method used to validate the user. This will only be set if the server is set to authenticate users.|
|CONTENT_LENGTH||The number of bytes in the message body of the HTTP request. This is used by POST method request.|
|CONTENT_TYPE||The media type of the incoming data.|
|GATEWAY_INTERFACE||Specifies the protocol name and revision being used by the server to communicate with the script.|
|HTTP_ACCEPT||Holds a comma delimited list of MIME types that the client will accept|
|HTTP_REFERER||Specifies the address of the web page that posted the request|
|HTTP_USER_AGENT||The name and version of the web browser used to make the request.|
|PATH_INFO||Extra path information specified in the URL that called the script|
|PATH_TRANSLATED||The server's real file system path to the script's location.|
|QUERY_STRING||The URL-encoded data in a GET request|
|REMOTE_ADDR||Specifies the IP address of the client's machine.|
|REMOTE_HOST||Specifies the client's domain name.|
|REMOTE_IDENT||Specifies the client machine's username if available.|
|REMOTE_USER||Specifies the name used to authenticate the user if the user was authenticated using server-based authentication|
|REQUEST_METHOD||Specifies if the request was GET or POST|
|SCRIPT_NAME||Specifies the virtual name of the script. (The directory and filename)|
|SERVER_NAME||The server's domain name|
|SERVER_PORT||The port that the web server is running on|
|SERVER_PROTOCOL||The name and revision of the protocol the server is using.|
|SERVER_SOFTWARE||The name and revision level of the web server|
As we said, most of this information will not be useful to your script.
In fact, for the most part, you will only want a few of these variables in your script.
If it is a GET request, your script will need QUERY_STRING.
If this is a POST request, the script will need CONTENT_LENGTH and will need to have the server send the body of the HTTP message to it as standard input.
But what does a CGI script look like? I do realize that this section went really fast and is pretty high level
Well that is because a lot of what you need to know will be discussed tomorrow. So let's stop here.
|Previous | Next | Table of Contents|