FastCGI

FastCGI is a binary protocol for interfacing interactive programs with a web server. It is a variation on the earlier Common Gateway Interface (CGI). FastCGI's main aim is to reduce the overhead related to interfacing between web server and CGI programs, allowing a server to handle more web page requests per unit of time.

History

Common Gateway Interface (CGI) is an interface specification allowing external applications to interact with web servers. CGI applications run in separate processes, which are created at the start of each request and torn down at the end. This "one new process per request" model makes CGI programs very simple to implement, but limits efficiency and scalability. At high loads, the operating system overhead for process creation and destruction becomes significant. Also, the CGI process model limits resource reuse methods, 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 application programming interfaces (APIs) (Netscape Server Application Programming Interface (NSAPI)) for developing Web applications.

While developed first by Open Market, FastCGI was then implemented by several other webserver makers. However, its approach competed against other methods to speed and simplify server-subprogram communication. Apache HTTP Server modules such as mod_perl and mod_php appeared around the same time, and gained popularity quickly. As of 2020, all of these various methods, including CGI, remain in common use.

Implementation details

Instead of creating a new process for each request, FastCGI uses persistent processes to handle a series of requests. These processes are owned by the FastCGI server, not the web server.[1]

To service an incoming request, the web server sends environment variable information and the page request to a FastCGI process over either a Unix domain socket, a named pipe, or a Transmission Control Protocol (TCP) connection. Responses are returned from the process to the web server over the same connection, and the web server then delivers that response to the end user. The connection may be closed at the end of a response, but both web server and FastCGI service processes persist.[2]

Each individual FastCGI process can handle many requests over its lifetime, thereby avoiding the overhead of per-request process creation and termination. Processing multiple requests concurrently can be done in several ways: by using one connection with internal multiplexing (i.e., multiple requests over one connection); by using multiple connections; or by a mix of these methods. Multiple FastCGI servers can be configured, increasing stability and scalability.

Web site administrators and programmers can find that separating web applications from the web server in FastCGI has many 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 enables the implementation of per-application, hosting service security policies, which is an important requirement for ISPs and web hosting companies.[3] Different types of incoming requests can be distributed to specific FastCGI servers which have been equipped to handle those types of requests efficiently.

Web servers that implement FastCGI

Note: unless stated, completeness of FastCGI implementation is unknown

Language bindings for its API

FastCGI can be implemented in any language that supports network sockets. Since "FastCGI is a protocol, not an implementation," it is not tightly bound to any one language. Application programming interfaces (APIs) exist for:[18]

Recent frameworks such as Ruby on Rails, Catalyst, Django, Kepler and Plack allow use with either the embedded interpreters (mod_ruby, mod_perl, mod_python or mod_lua, for example), or FastCGI.

References

  1. ^ "FastCGI Specification". Open Market, Inc. 1996. Archived from the original on 19 January 2016.
  2. ^ "FastCGI:A High-Performance Web Server Interface". Open Market, Inc. 1996. Archived from the original on 1 October 2010.
  3. ^ Heinlein, Paul (1 November 1998). "FastCGI: Persistent Applications for Your Web Server". Linux Journal. Retrieved 4 October 2010.
  4. ^ FastCGI apache module mod_fcgid
  5. ^ Debian bug #450748: Please add support for TCP/IP FastCGI servers
  6. ^ Issues with Apache 2.4 and PHP-FPM
  7. ^ libapache-mod-fastcgi on Github
  8. ^ "FastCGI – The Forgotten Treasure/ Section 2.3". Archived from the original on 2010-02-08. Retrieved 2006-02-21.
  9. ^ The fastcgi transport — reverse_proxy (Caddyfile directive) — Caddy Documentation
  10. ^ FastCGI for Cherokee
  11. ^ FastCGI howto for Hiawatha
  12. ^ a b "FastCGI Support in Jetty". Archived from the original on 2020-03-24. Retrieved 2017-03-23.
  13. ^ FastCGI for Lighttpd
  14. ^ "FastCGI Extension for IIS6.0 – RTM". FastCGI for IIS. Microsoft. 2008-02-28. Retrieved 2008-02-29.
  15. ^ "FastCGI Nginx module ngx_http_fastcgi_module". nginx.org. NGINX, Inc. Retrieved 20 June 2021.
  16. ^ OpenBSD's httpd(8) initial commit
  17. ^ "Technical sheet". Archived from the original on 2018-01-21. Retrieved 2016-09-19.
  18. ^ Application Libraries, Development Kits
  19. ^ "Matreshka". Archived from the original on 2018-01-20. Retrieved 2011-10-06.
  20. ^ ExtPascal
  21. ^ How to use FastCGI from Common Lisp
  22. ^ Goanna Eiffel
  23. ^ jFastCGI, a Java Servlet implementing FastCGI protocol
  24. ^ node-fastcgi npm package
  25. ^ There are several FastCGI modules for Perl: FCGI (a compiled module written in C), FCGI::Async (for asynchronous FastCGI applications), AnyEvent::FCGI (for AnyEvent-based applications), FCGI::EV (for EV-based applications), CGI::Fast (Perl CGI-like interface for FastCGI), FCGI::Client (a FastCGI client library), and Net::FastCGI (constants and functions to build and parse FastCGI messages).
  26. ^ "PHP: FastCGI Process Manager (FPM) - Manual".
  27. ^ FasterCGI with HHVM
  28. ^ Several Rust crates exist: A listener implementation is fastcgi, and fastcgi-client is a client implementation.
  29. ^ REAL Studio Web Edition, builds web apps called via FastCGI Archived 2011-02-08 at the Wayback Machine

Read other articles:

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada April 2016. Bagian dalam Turducken yang diisi sosis Engastrasi adalah metode memasak berupa penjejalan hewan ke dalam hewan lain. Metode ini diduga sudah ada pada Abad Pertengahan.[1] Di antara masakan yang dibuat dengan metode ini adalah Turducken, yang dib...

 

Survey of the postage stamps and postal history of France You can help expand this article with text translated from the corresponding article in French. (April 2021) Click [show] for important translation instructions. View a machine-translated version of the French article. Machine translation, like DeepL or Google Translate, is a useful starting point for translations, but translators must revise errors as necessary and confirm that the translation is accurate, rather than simply copy...

 

TorrecusoKomuneComune di TorrecusoLokasi Torrecuso di Provinsi BeneventoNegara ItaliaWilayah CampaniaProvinsiBenevento (BN)Luas[1] • Total29,16 km2 (11,26 sq mi)Ketinggian[2]420 m (1,380 ft)Populasi (2016)[3] • Total3.739 • Kepadatan130/km2 (330/sq mi)Zona waktuUTC+1 (CET) • Musim panas (DST)UTC+2 (CEST)Kode pos82030Kode area telepon0824Situs webhttp://www.comune.torrecuso.bn.it Tor...

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: My Drink n My 2 Step – news · newspapers · books · scholar · JSTOR (October 2010) (Learn how and when to remove this template message) 2007 single by Cassidy featuring Swizz BeatzMy Drink n My 2 StepSingle by Cassidy featuring Swizz Beatzfrom the album B.A.R.S....

 

SKF-91488 Names Preferred IUPAC name 4-(Dimethylamino)butyl carbamimidothioate Identifiers CAS Number 68643-23-2 3D model (JSmol) Interactive image ChEMBL ChEMBL1230270 ChemSpider 5037 DrugBank DB07106 PubChem CID 5227 UNII 1I4LVX494H CompTox Dashboard (EPA) DTXSID50988329 InChI InChI=1S/C7H17N3S/c1-10(2)5-3-4-6-11-7(8)9/h3-6H2,1-2H3,(H3,8,9)Key: UFYJLJINUGVUHO-UHFFFAOYSA-N SMILES [H]/N=C(/N)\SCCCCN(C)C Properties Chemical formula C7H17N3S Molar mass 175.29 g·mol−1 Except...

 

Kōtō 江東区Distrik kota istimewa BenderaLambangLokasi Kōtō di Prefektur TokyoNegara JepangWilayahKantōPrefektur TōkyōPemerintahan • Wali kotaTakaaki YamazakiLuas • Total40,2 km2 (155 sq mi)Populasi (Oktober 1, 2015) • Total498.109 • Kepadatan12,390/km2 (32,09/sq mi)Zona waktuUTC+9 (WSJ)Kode pos135-8383Simbol • PohonPinus thunbergii• BungaCamellia sasanquaNomor telepon03-3647-9111Alamat4-...

 NE9 Stasiun MRT Boon Keng文庆地铁站பூன் கெங்Angkutan cepatPeron Stastiun MRT NE9 Boon KengLokasi900 Serangoon RoadSingapura 328260Koordinat1°19′10″N 103°51′42″E / 1.319483°N 103.861722°E / 1.319483; 103.861722Jalur  Jalur Timur Laut Jumlah peronPulauJumlah jalur2LayananBis, TaxiKonstruksiJenis strukturBawah tanahTinggi peron2Akses difabelYesInformasi lainKode stasiunNE9SejarahDibuka20 Juni 2003Operasi layanan Stasiu...

 

Abundance of financial assets or possessions Several terms redirect here. For other uses, see Wealth (disambiguation), Wealthy (disambiguation), Affluence (disambiguation), and Affluent (disambiguation). Total wealth per capita, in 2014[1][failed verification][dead link] Wealth is the abundance of valuable financial assets or physical possessions which can be converted into a form that can be used for transactions. This includes the core meaning as ...

 

Michel Platini of France is the only player to have scored two hat-tricks in the European Championship, having scored both at UEFA Euro 1984, when his team went on to win the tournament. This is a list of all hat-tricks scored during UEFA European Championships; that is, the occasions when a footballer has scored three or more goals in a single football European Championship match (not including qualification matches). Scoring a hat-trick in a European Championship is a relatively rare event...

The BarbershopSutradaraWilliam K.L. Dickson dan William HeisePerusahaanproduksiPerusahaan Manufaktur EdisonTanggal rilis1894Durasi22 detik The Barbershop adalah sebuah film naratif pendek Amerika Serikat tahun 1894 garapan William K.L. Dickson dan William Heise. Film tersebut diproduksi oleh Perusahaan Manufaktur Edison di Studio Black Maria, West Orange, New Jersey. Film ini adalah salah satu yang pertama kali dibuat untuk Kinetoskop.[1] Alur cerita Di sebuah barbershop, seorang tuka...

 

Sigmund Freud, padre della psicoanalisi La psicoanalisi o psicanalisi[1] (da psico-, psiche, anima, più comunemente mente, e -analisi: analisi della mente) è la teoria dell'inconscio della psiche umana su cui si fondano una disciplina, nota come psicodinamica, e una relativa prassi psicoterapeutica, che hanno preso l'avvio dal lavoro di Sigmund Freud[2], il quale si inserì nel solco dei lavori di Jean-Martin Charcot e Pierre Janet.[3] In primis la teoria psicoanalit...

 

Peta Kabupaten Bantaeng di Sulawesi Selatan Berikut adalah daftar kecamatan dan kelurahan di Kabupaten Bantaeng, Provinsi Sulawesi Selatan, Indonesia. Kabupaten Bantaeng terdiri dari 8 Kecamatan, 21 Kelurahan dan 46 Desa dengan luas wilayah 395,83 km² dan jumlah penduduk sebesar 196.358 jiwa dengan sebaran penduduk 496 jiwa/km².[1][2] Daftar kecamatan dan kelurahan di Kabupaten Bantaeng, adalah sebagai berikut: Kode Kemendagri Kecamatan Jumlah Kelurahan Jumlah Desa Status Da...

Avdullah Hoti Perdana Menteri KosovoPetahanaMulai menjabat 3 Juni 2020PresidenHashim ThaçiPendahuluAlbin KurtiPenggantiPetahanaWakil Perdana Menteri PertamaMasa jabatan3 Februari 2020 – 25 Maret 2020Perdana MenteriAlbin KurtiPendahuluBehgjet PacolliPenggantiBesnik TahiriMenteri KeuanganMasa jabatan8 Desember 2014 – 2 Agustus 2017Perdana MenteriIsa MustafaPendahuluBedri HamzaPenggantiAgim Krasniqi Informasi pribadiLahir4 Februari 1976 (umur 48)Ratkovac, Orahovac...

 

  لمعانٍ أخرى، طالع ماريون (توضيح). ماريون     الإحداثيات 37°19′57″N 88°04′44″W / 37.3325°N 88.07889°W / 37.3325; -88.07889   [1] تاريخ التأسيس 1842  تقسيم إداري  البلد الولايات المتحدة[2]  التقسيم الأعلى مقاطعة كريتيندين  عاصمة لـ مقاطعة كريتيندين  خصائص ...

 

Questa voce o sezione sull'argomento sportivi è priva o carente di note e riferimenti bibliografici puntuali. Sebbene vi siano una bibliografia e/o dei collegamenti esterni, manca la contestualizzazione delle fonti con note a piè di pagina o altri riferimenti precisi che indichino puntualmente la provenienza delle informazioni. Puoi migliorare questa voce citando le fonti più precisamente. Segui i suggerimenti del progetto di riferimento. Aldo NadiNazionalità Italia Altezza183 ...

East Slavic language spoken by Carpathian Rusyns, Lemkos, Boykos, and Hutsuls Not to be confused with Pannonian Rusyn, Ruthenian language, or Russian language. For other uses, see Rusyn. Rusynрусиньскый язык; руски язикrusîn'skyj jazyk; ruski jazikEthnicityRusynsNative speakers70,000 (2001–2013)[1]Slovakia – 38,679[2]Serbia – 15,626[3]Poland – 10,000[4]Ukraine – 6,725[5]Croatia – 2,337[6]Hungary – 1,113...

 

DGHD > DGホールディングス > DMM.comホールディングス > DMM.com 合同会社DMM.comDMM.com LLC 本社が入居している住友不動産六本木グランドタワー種類 合同会社市場情報 非公開略称 DMM本社所在地 日本〒106-6224東京都港区六本木三丁目2番1号住友不動産六本木グランドタワー24F設立 1999年11月17日[1]業種 サービス業法人番号 3011001038942 事業内容 デジタルコンテ�...

 

Retarding force on a body moving in a fluid For other uses, see Drag. In fluid dynamics, drag, sometimes referred to as fluid resistance, is a force acting opposite to the relative motion of any object, moving with respect to a surrounding fluid.[1] This can exist between two fluid layers, two solid surfaces, or between a fluid and solid surface. Drag forces tend to decrease fluid velocity relative to the solid object in the fluid's path. Unlike other resistive forces, drag force depe...

Welsh politician and baronet John Wynn, 5th Bt Sir John Wynn, 5th Baronet (1628 – 11 January 1719) was a Welsh landowner and Tory politician who sat in the English and British House of Commons between 1679 and 1713.[1] He was among the largest landowners in Wales.[2] Early life Wynnstay Estate, inherited by the 5th Baronet Wynn was the only son of Henry Wynn of Rhiwgoch, Merioneth, and was educated at the Inner Temple, 1646. He inherited the Watstay Estate through his ma...

 

  关于名为徐冰的其他人物,請見「徐冰」。 徐冰(1903年—1972年),原名邢萍舟、邢西萍,笔名西萍,男,直隶(今河北)南宫人,中华人民共和国政治人物。[1][2] 生平 1924年,他在德国柏林加入中国共产党,并参与学生运动,与朱德等人被当局逮捕。随后转入莫斯科中山大学学习,之后回国到上海,在中共中央秘书处任翻译。1932年,被叛徒出卖遭国民...