As the name suggests, CGI means "Common" gateway interface for everything. CGI is one of the important parts of HTTP (Hyper-Text Transfer Protocol).
It is a set of standards that define a standard way of passing information or web-user request to an application program & to get data back to forward it to users. This is the exchange of information between web-server and a custom script. When the users requested the web-page the server sends the requested web-page. The web server usually passes the information to all application programs that process data and sends back an acknowledged message; this technique of passing data back-and-forth between server and application is the Common Gateway Interface. The current version of CGI is CGI/1.1 & CGI/1.2 is under process.
What happens when a user clicks a hyperlink to browse a particular web-page or URL (Uniform Resource Locator).
The steps are:
- Browser contacts the HTTP web server for demanding the URL
- Parsing the URL
- Look for the filename
- If it finds that file, a request is sent back
- Web browser takes a response from web server
- As the server response, it either shows the received file or an error message.
It may become possible to set-up an HTTP server because when a certain directory is requested that file is not sent back; instead it is executed as a program and that program's output is displayed back to your browser.
The steps are:
- Find out which user is running the Web-server
- Check for server configuration to see if you can run the scripts in a particular directory
- Check for file's permission
- Make a clear assurance that scripts you made are readable and executable by the web-server user
- Make sure the Python-Script's first line refers to web-server that the interpreter can run
The architecture of CHI is shown below:
The output of Python CGI script must consist of two sections separated by a blank line. The first part contains the number of headers that describe the client what kind of data is following.
Python code header section looks something like this:
print ("Content-Type : text/html") \# then comes the rest hyper-text documents print ("\<html\>") print ("\<head\>") print ("\<title\>My First CGI-Program \</title\>") print ("\<head\>") print ("\<body\>") print ("\<h3\>This is HTML's Body section \</h3\>") print ("\</body\>") print ("\</html\>")
Save this file as CGI.py. When you will open that saved file, the output becomes:
This is HTML's Body section
Use of CGI Module:
If programmers write CGI scripts in Python, they can add these lines:
import cgitb cgitb.enable()
The above code triggers special exception handler that will display a detailed report in the web-browser in case of occurrence of any error.
Few are the important lists of HTTP header frequently used in CGI programs. These are:
CGI Environment Variables: