In computing, Common Gateway Interface (CGI) is an interface specification that enables web servers to execute an external program, typically to process user requests.[1]
Such programs are often written in a scripting language and are commonly referred to as CGI scripts, but they may include compiled programs.[2]
A typical use case occurs when a Web user submits a Web form on a web page that uses CGI.
The form's data is sent to the Web server within an HTTP request with a URL denoting a CGI script.
The Web server then launches the CGI script in a new computer process, passing the form data to it.
The output of the CGI script, usually in the form of HTML, is returned by the script to the Web server, and the server relays it back to the browser as its response to the browser's request.[3]
Developed in the early 1990s, CGI was the earliest common method available that allowed a Web page to be interactive. Although still in use, CGI is relatively inefficient compared to newer technologies and has largely been replaced by them.[4]
Each Web server runs HTTP server software, which responds to requests from web browsers. Generally, the HTTP server has a directory (folder), which is designated as a document collection — files that can be sent to Web browsers connected to this server.[
For example, if the Web server has the domain name example.com
, and its document collection is stored at /usr/local/apache/htdocs
in the local file system, then the Web server will respond to a request for http://example.com/index.html
by sending to the browser the (pre-written) file /usr/local/apache/htdocs/index.html
.
A Web server allows its owner to configure which URLs shall be handled by which CGI scripts.
This is usually done by marking a new directory within the document collection as containing CGI scripts — its name is often cgi-bin
. For example, /usr/local/apache/htdocs/cgi-bin
could be designated as a CGI directory on the Web server. When a Web browser requests a URL that points to a file within the CGI directory (e.g., http://example.com/cgi-bin/printenv.pl/with/additional/path?and=a&query=string
), then, instead of simply sending that file (/usr/local/apache/htdocs/cgi-bin/printenv.pl
) to the Web browser, the HTTP server runs the specified script and passes the output of the script to the Web browser. That is, anything that the script sends to standard output is passed to the Web client instead of being shown on-screen in a terminal window.
Our specialty. Both native & hybrid mobile apps, mobile games, augmented reality, enterprise mobility, & more. For iOS, Android & Windows App Development .
ReplyDeleteI admire what you have done here. I like the part where you say you are doing this to give back but I would assume by all the comments that this is working for you as well.
ReplyDeleteFantasy Sports App Development
Fantasy Sports App Development
Thanks for sharing this wonderful content and interesting post to read. it's very useful to us. you are doing a great job. Keep it up
ReplyDeleteMetaverse Development Company