CGI Access Hosting
Common Gateway Interface (CGI) is a method for Web servers to process and run executable scripts, or programs, and generate dynamic content for display in a user's Web browser.
What It Is
CGI was designed as a way to allow a Web browser to run an executable script. Under normal circumstances, when a Web browser requests a webpage or file, the HTTP server hosting the website simply serves up the requested file for the Web browser to display or download.
There are circumstances, however, when displaying or downloading a file is not the desired outcome. For example, when filling out and submitting a form the goal is to have the contents of the form emailed to the website operator while providing the user confirmation that the form was submitted successfully. Neither operator or user would be served by the form being downloaded to the user's computer.
This is where CGI comes into play. A site admin can specify a folder to contain all executable scripts. On many hosts, this folder is "cgi-bin." When a Web browser requests a URL that points to one of these scripts, the HTTP server runs the script and returns the results, rather than simply serving up the script itself as it would an ordinary webpage.
As previously mentioned, a common use of CGI scripts is to submit form data. CGI scripts can be configured to collect the data, save it in a database, email it to the website operator and display an acknowledgement to the individual submitting the form.
CGI scripts can also be used in any number of additional scenarios, including signing a guestbook, submitting a query and submitting a form that returns a value, such as a translation form.
CGI scripts can be written in virtually any language, although scripting languages are among the more popular choices.
The Perl programming language is known for being the "duct-tape of the Internet." It excels at text manipulation and database access. Well-established Web frameworks and the ability to embed it into Web servers make it a popular choice for CGI scripts.
PHP is another scripting language that is commonly used for Web-based programming. Its flexible nature makes it ideal for use in creating CGI scripts. In fact, PHP started its life when its creator, Rasmus Lerdorf, wrote a number of CGI scripts in the C language. As he continued to add features, his work eventually evolved into PHP.
Tcl, Python and Ruby are also commonly used.
As Internet technologies have evolved and advanced, more complex alternatives to CGI have gained in popularity. In particular, using PHP, Python, Ruby on Rails, Java or ASP to write complete Web applications that can duplicate, and go far beyond, the functionality of CGI scripts is a viable alternative.
Advantages of CGI
In spite of the rise of alternatives, CGI still has some inherent advantages. The fact that scripts can be created in virtually any language contributes to its ongoing popularity.
Its long history and wide use have also contributed to a plethora of pre-written scripts being available on the Internet. Many of these scripts, such as ones to submit an email form, can be easily edited and used, even by relative novices.
CGI scripts are not without disadvantages, especially as it relates to the performance of a server. Poorly written scripts can get caught in endless loops, eating up system resources.
CGI scripts suffer from scalability limitations as well. Because the server has to spawn a new process each time a script is called, websites that process many requests in a short period of time can quickly be overwhelmed or slowed to a crawl.
For these reasons, many developers choose more robust alternatives for anything but the most basic application.
Points to Remember
CGI continues to be a viable way of submitting information and generating dynamic content by providing a method for a Web browser to run an executable script.
While CGi is simple-to-use, there are many alternatives that provide superior capabilities and performance.
Here's What Your CGI Access Hosting Needs To Offer
The Common Gateway Interface (CGI) was the original method of providing dynamic content to website visitors. Even though there are many alternatives today, CGI allows users to create programs in any language that the server can process. There are also a lot of existing programs that can be used or updated. But it is usually easier to use an alternative. If you need CGI, however, we recommend SiteGround.