Popular Searches

download information for Search Optimization  Search Optimization
download information for Search Engine  Search Engine
download information for Adsense  Adsense
download information for RSS  RSS
download information for Blog  Blog
download information for Compression  Compression
download information for Audio  Audio
download information for Video  Video
download information for XML  XML
download information for Screensaver  Screensaver
download information for CSS  CSS
download information for Backup  Backup
download information for Software  Software
download information for Spyware  Spyware



Tags

redirects fellow guilds london institute fastcgi protocol programs server variation earlier common gateway interface fastcgis reduce overhead associated allowing handle requests



Web Matches



A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z

Search Articles e.g. mp4
 

FastCGI
"FCGI" redirects here. FCGI may also refer to a fellow of the City and Guilds of London Institute.

FastCGI is a protocol for interfacing interactive programs with a web server. FastCGI is a variation on the earlier Common Gateway Interface (CGI); FastCGI's main aim is to reduce the overhead associated with interfacing the web server and CGI programs, allowing a server to handle more web page requests at once.

History

CGI is a protocol for interfacing external applications to web servers. CGI applications run in a separate process, which is created at the start of each request and torn down at the end. This "one process per request" model makes CGI programs very simple to implement, but limits efficiency and scalability. At high loads, the operating system process creation and destruction overhead becomes significant and limits scalability. In addition, the CGI process model limits resource reuse techniques (such as reusing database connections, in-memory caching, etc.).

To address the scalability shortcomings of CGI, Open Market developed FastCGI and first introduced it in their webserver product in the mid-1990s. Open Market originally developed FastCGI in part as a competitive response to Netscape's proprietary, in-process API (NSAPI) for developing Web applications.

Although initially developed by Open Market, FastCGI was implemented by a number of other webserver makers. The FastCGI approach, however, competed against other techniques that also aimed to speed and simplify server-subprogram communications, but which didn't follow the CGI paradigm. Apache modules such as mod_perl and mod_php appeared around the same time and seemed to be even better replacements for CGI, allowing closer integration with the core webserver.

Implementation details

Instead of creating a new process for every request, FastCGI can use a single persistent process which handles many requests over its lifetime. Processing of multiple requests simultaneously is achieved either by using a single connection with internal multiplexing (ie. multiple requests over a single connection) and/or by using multiple connections. Many such processes can exist, something that can increase stability and scalability. FastCGI also allows programs to get the web server to do certain simple operations, like reading in a file, before the request is handed over. Environment information and page requests are sent from the web server to the process over a TCP connection (for remote processes) or Unix domain sockets (for local processes). Responses are returned from the process to the web server over the same connection. The connection may be closed at the end of a response, but the web server and the process are left standing.

Many web site administrators and programmers are finding that the separation of web applications from the web server in FastCGI (and the simpler SCGI) has many desirable advantages over embedded interpreters (mod_perl, mod_php, etc.). This separation allows server and application processes to be restarted independently - an important consideration for busy web sites. It also facilitates per-application security policies - important for ISPs and web hosting companies.

Web Servers that implement FastCGI

Note: unless stated, completeness of FastCGI implementation is unknown

Abyss Web Server

Apache HTTP Server (partial)

Implemented by either of the third-party modules mod_fastcgi or mod_fcgid

Multiplexing of requests through a single connection is prohibited by Apache's design, so this isn't supported

Cherokee HTTP Server

Hiawatha webserver

Loadbalancing FastCGI support

Supports chrooted FastCGI servers

Lighttpd (partial)

Multiplexing of requests through a single connection is not implemented

LiteSpeed Web Server

Microsoft IIS

Nginx

Open Market Web Server

Roxen Web Server

Sun Java System Web Server

Kerio WebSTAR

Zeus Web Server

Language bindings for the FastCGI API

FastCGI can be implemented in any language that supports sockets. APIs exist for:

C / C++

Common Lisp: CLISP and CMUCL

Guile Scheme

Goanna Eiffel

Haskell

Java

Lua

Ocaml

Perl

PHP

Roadsend PHP

Python

Ruby

SmallEiffel

Smalltalk: FasTalk and Dolphin Smalltalk

TCL

HP BASIC for OpenVMS

D programming language

Mono XSP

FastCGI has enabled web application portability; in contrast, applications developed for embedded interpreters (such as mod_python) are often tightly bound to the Apache API. Recent frameworks such as Ruby on Rails, Catalyst, Django and Kepler allow use with either the embedded interpreters (mod_ruby, mod_perl, mod_python or mod_lua, respectively) or with FastCGI.



Related Ads



Add to Google Add to Yahoo Add to Furl  Add to del.icio.us  Add to DIGG

Resource: Part or all of the information provided in this section is brought to you via wikipedia and other similar sites. Please repsect their licenses and for more information visit the homepages of these sites.

Links
Freeware Downloads Download Information RGB Hex Converter Web Colors
Home  Link to Us
Copyright © iFreeware Downloads 2005-2012
All rights reserved