In the programming world there are already made standards that you as a programmer or a developer must learn how to follow.
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, don't come over here anymore.
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.
You will be thrown into the wolves when you are following this path so be ready and buckle your seatbelt because you are part of a very fast pace industry that changes all of the time.
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 and accepts and returns data from and to a server, then 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 also specifies the current practice definitions and parameters of the CGI/1.1.
If you don't believe the information you find here, then I suggest you come back after you do your own in depth research.
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.
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 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 your 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 that 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 sometime 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 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, default.htm, when users are searching in the root directory of a website, if you however want to serve any other files to the clients that visit your creations you would have to name that file.
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 handle dynamically created web pages, it has to use CGI, which you would see all over the place online, although you wouldn't recognize it.
When you enter a comment on some one's web site and you are able to view your common 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 a standard and you need to learn how to follow it if you want to be able to write CGI scripts the proper way.
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.
Web servers use the CGI method to run external CGI based programs, so that dynamic content can 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.
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 that run in the background to read information and generate some type of response that 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 earlier, make sure that you have the 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
} 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!!!