Common Gateway Interface (CGI)


In the programming world there are already made standards that you as a programmer or a developer must learn how to follow; in order for you to become a great developer.

If you don't learn how to follow these programming techniques, you will surely not ever be a professional programmer, forget about it, go home, and don't come over here anymore, because we don’t have anything else to offer you, if can’t learn to follow simple steps.

You as a programmer must understand that, this is serious business, and that people are depending on your skills to make things happen and to be able to accomplish any programming tasks that is thrown at you.

When you are not able to accomplish, programming tasks, then you are of no use, and people will not respect you as a programmer. You will be thrown into the wolves, when you are following this path to be a great programmer, so be ready and buckle your seatbelt, because you are part of a very fast paced industry that changes all of the time and does not stop or slow down for no one.

In today's article, we are going to talk about the Common Gateway Interface (CGI), which is a specification for transferring information between a World Wide Web server and a CGI program.

When a program conforms to the CGI specification, they accepts and returns data from and to a server, that program is known as a CGI script.

C, Perl, Visual Basics or Java could be used to write a CGI program, as long as it follows the CGI specification.

External programs, software or gateways are able to operate under the simple CGI interface that is under an information server that runs under a platform that is independent.

HTTP servers is an example of the current information server that is supported by the common gateway interface (CGI).

A group of computer software and engineers used the U.S. National Centre to develop and document the Common Gateway Interface in the United States of America.

The World Wide Web (WWW) has been using the common gateway interface since 1993, and it also specifies the current practice definitions and parameters of the CGI/1.1.

If you don't believe or trust in the information you find here, then I suggest you come back after you do your own in depth research, then compare the two.

One of the main purpose, for developing the CGI specifications and standards was to develop Supercomputing Applications, which are being used in today's cyber world.

One of the reasons why you as an Internet client, is able to see the information you search online come up on your screen, is because the common gateway interface specifications, gives a CGI script and an HTTP server the ability to work together to take care of your requests. If CGI scripts didn’t exist, then it would be very difficult for us to use the Internet today.

A uniform resource identifier (URI) is usually the method that is used to create a client request, which would be sent to an HTTP server. The server who is then able to interpret the URL, will respond back to the request with the appropriate response.

The URI simply contains the request method and various information that is needed to transport your request to the server you are attempting to access.

The abstract parameters or meta-variables are also part of the description of the client's request and they are also defined by the CGI.

A platform-independent interface can exist between a CGI script and an HTTP server.

The CGI script in an HTTP server is responsible for you to smoothly access information and process a document, if you need to do that, or accomplish any other task, you have in mind, with the HTTP server and your CGI script.

Data transfer, connection management, network issues and transport are all the responsibilities, of the Common Gateway Interface.

A meta-variable, if you don't know it already, is able to carry information from a server to a CGI script, that you have written.

You'll find that a meta-variable does not behave similar, to a variable in the operating system, and it is mostly implemented in an operating system environment.

A script is just a software, which can be a shared library or a subroutine, in the server that is invoked by the server when it is needed.

A web server, with the help of the CGI, retrieves files off a disk and serves a client who is looking for that information, through a URL.

The CGI works together with the web-server, so we are going to spend some time, on how a web-server works.

A server's root directory has already been set up in the web-server to understand, when users want to search for the default file.

You should know what a root directory is, but if you don't know that already, then send me an email and I'll answer your questions.

The server, which you are searching, would search for an index.html, index.htm, default.html or a default.htm file, when users are searching in the root directory of a website. If you however, want to serve any other files to the clients that visits your creations, you would have to name that file and tell the server where to look.

All static files are handled this way by a web-server; however, web sites on the Internet are not created with static files, but instead web sites on the Internet are mostly created with dynamic files.

In order for web-servers to be able to be handle dynamically created web pages, it has to use CGI, which you would see all over the place online, although you wouldn't recognize these files, because they are working in the background. Unless of course you are an experience web developer, then you’ll be able to recognize any programming files online.

When you enter a comment on some one's web site and you are able to view your comment later on, you are experiencing the web-server and a CGI script working together at the same time, for you to be able to view your comments, on a certain web page.

The mechanism of the common gateway interface, is the standard and you need to learn how to follow it, if you want to be able to write CGI scripts, the proper way.

When you write your CGI scripts, you have to be able to test them and if you want to test your CGI script, you must first create a subdirectory under the root directory of your web server, the subdirectory is usually called cgi-bin, I am sure you have seen this before.

Interactive pages and databases are able to be coordinated due to the fact that, these systems use the common gateway interface (CGI).

It would be impossible to create interactive pages, such as bulletin boards and search pages with HTML alone; therefore, CGI along with many other web site technologies are always available to website developers to accomplish these and many other tasks.

The cgi-bin directory is mainly there to help web server identify when a page needs to be served, or when a CGI script needs to be executed.

The browsers that request a CGI script page would actually only see an output of what the script is supposed to do on that server.

CGI scripts are usually written in PERL, because PERL is the most popular language that uses CGI heavily, you should know that.

You can use any other high level or low level language, but you do have to learn a programming language before you are able to write your CGI scripts, that programming language is usually Perl.

Web servers use the CGI method to run external CGI based programs, so that dynamic content can be generated online.

Database queries are executed and forms are submitted to web-server systems properly when you are able to write the proper CGI scripts that are supposed to do just that for you.

The server is the arena where the CGI scripts operate, and render web pages requested by clients.

Therefore, CGI scripts read the information that is being sent from a client through a web browser, and display the results to the web browser after it communicates with the web-server.

Therefore; without CGI scripts that are working constantly in the background with the web-server, you wouldn't be able to come and visit this website.

You are here because CGI scripts are constantly at work, to make sure that you arrive at the destination that you intended to go in the cyber space. Of course CGI scripts are not the only scripts working in the background, there are other website technologies, which are at work to make the cyber world possible for all of us.

Alright now before we get into some coding you should know by now that the standards, which a web-server uses to run CGI scripts are specified within the common gateway interface.

You should also know that the CGI scripts, which run in the background to read information and generate some type of response, which would be sent back to the browser based on the response received by web-server, are usually written by you the developer.

You can perform a lot of experiments with CGI, given that you already know a standard programming language such as Perl or the C programming language.

Before you can perform your experiments though, you have to first and for most, as we mentioned in other porst, make sure that you have an environment installed on your computer, you need to be able to execute your CGI program and you will need to set up on your directory structure the necessary directories and files.

A CGI script that can create a simple, static web page as its output would look similar to this: #include

int main()


printf("Content-type: text/html\n\n");



printf(">h1<Hello there!>/h1<\n");



return 0;

} The programm you saw above is completely written in C and you would compile it using this simple command line gcc simplest.c -o simplest.cgi.

You have to of course change the name of the cgi script written in the call above and place it in the right directory.

The script above have to be placed under the cgi-bin directory, in order to prevent you from confusing yourselves.

The printf("Content-type: text/html\n\n"); does not get printed, the only thing that is printed to the screen above is “Hello World”, anything else are HTML tags that wouldn't be viewed by your visitors.

Any CGI script must have the "Content-type: text/html\n\n" line, because this is a special piece of text, which any CGI script sends to the browser, so that it is identified as a web page.

CGI scripting is really simple and we have explained the simple basic idea behind CGI scripting; but you have to do lot of research and read more information on CGI scripting until your mind completely wraps around this concept.

Dynamic pages are created from CGI scripting when they execute, so if CGI programming was not allowed online we wouldn't be able to create our precious dynamic pages, which makes the job of a website developer much easy.

Alright my fellow readers, continue to do more and more research and read the subject until you fully understand CGI.

Thank you for reading this post!!!


Add a Comment

Hernando Cadet

Hi every one, I obtained a bachelor's degree in Bioinformatics back in 2006, from Claflin University, after I received my bachelor's degree, I gained full time employment as a software engineer at a Video Relay Service company, maintaining databases and developing software for a new developed device called the VPAD.

I worked at that company for two years, then I became a web developer, and worked for a magazine for three years. After that job, I worked as a Drupal web developer, as a subcontractor for the NIH, for a year and then left the job to go back to school.

Hernando Cadet

Collaboratively administrate empowered markets via plug-and-play networks. Dynamically procrastinate B2C users after installed base benefits. Dramatically visualize customer directed convergence without

Collaboratively administrate empowered markets via plug-and-play networks. Dynamically procrastinate B2C users after installed base benefits. Dramatically visualize customer directed convergence without revolutionary ROI.