Simple Common Gateway Interface

The Simple Common Gateway Interface (SCGI) is a protocol for applications to interface with HTTP servers, as an alternative to the CGI protocol. It is similar to FastCGI but is designed to be easier to parse. Unlike CGI, it permits a long-running service process to continue serving requests, thus avoiding delays in responding to requests due to setup overhead (such as connecting to a database).

SCGI is a protocol which defines communication between a web server and an application server. This is in contrast to CGI, which is an earlier application (gateway) interface designed to let the application programmer avoid the complexity of sockets and long-running service processes when poor scalability and high overhead are acceptable.

The SCGI protocol leverages the fact that the web server has already parsed and validated the HTTP request, and canonically communicates the request to the SCGI server while letting the application programmer avoid parsing ambiguities and protocol edge cases. This avoids the complicated header-parsing and header-combining rules from RFC 2616, saving significant complexity in the SCGI server process.

History

Neil Schemenauer published the original SCGI protocol specification dated October 2001.[1] He developed the first implementations of SCGI and initially published them in April 2002.[2]

Specification

The client connects to a SCGI server over a reliable stream protocol allowing transmission of 8-bit bytes. The client begins by sending a request. When the SCGI server sees the end of the request it sends back a response and closes the connection. The format of the response is not specifically specified by this protocol, although CGI-equivalent HTTP responses are generally used.[note 1]

Request format

A SCGI request is the concatenation of netstring-encoded headers and a body. A SCGI response is a normal HTTP response.

Each header consists of a name–value pair, where both the name and the value are null-terminated strings (C strings). The value can be an empty string, in which case the terminating null still remains. Neither name nor value can contain any embedded null bytes. These considerations are standard for C strings, but are often confusing for programmers used to other standards for string-handling.

All provided headers are concatenated to form a single byte sequence, then netstring-encoded. The raw body, if any, is then appended.

Duplicate names are not allowed in the request headers; RFC 2616-compliant header combining[note 2] must already have taken place. The first request header must have the name "CONTENT_LENGTH" and a value that is the length of the body in decimal. The "CONTENT_LENGTH" request header must always be present, even if its value is "0". There must also always be a request header with the name "SCGI" and a value of "1". Standard CGI environment variables should be provided in SCGI headers for compatibility when converting older CGI programs to SCGI. The body (if any) provided in the request follows the headers; its length is specified by the "CONTENT_LENGTH" request header.

While the SCGI protocol insulates the service programmer from some HTTP considerations, various details (such as interpreting the octets of the message body as per the Transfer-Encoding header, the CONTENT_LENGTH being the number of octets after the body has been encoded for transmission, etc.) still require knowledge of the HTTP protocol specification.

Example

The web server (a SCGI client) opens a connection and sends the concatenation of the following strings to the service process (a SCGI server):

       "70:"
           "CONTENT_LENGTH" <00> "27" <00>
           "SCGI" <00> "1" <00>
           "REQUEST_METHOD" <00> "POST" <00>
           "REQUEST_URI" <00> "/deepthought" <00>
       ","
       "What is the answer to life?"

The SCGI server sends the following response back to the web server:

       "Status: 200 OK" <0d 0a>
       "Content-Type: text/plain" <0d 0a>
       "" <0d 0a>
       "42"

The SCGI server closes the connection.

Web servers that implement SCGI

(this list is not complete)

Language bindings for the SCGI API

SCGI can be implemented in any language that supports network sockets and netstrings. The following is a partial list of languages with known SCGI bindings:

See also

Application/Gateway protocols:

Application hosts (language-specific):

Notes

1.^ The specification document was placed in the public domain by Neil Schemenauer on 12 January 2006.
2.^ For HTTP header combining, see RFC2616 section 4.2.

References

  1. ^ Schemenauer, Neil (October 30, 2001). "SCGI: A Simple Common Gateway Interface alternative". Archived from the original on 2002-04-03.
  2. ^ "scgi-0.1.tar.gz". Index of /software/files/scgi. MNX: MEMS and Nanotechnology Exchange. April 12, 2002. Archived from the original on 2002-10-20.
  3. ^ "Althttpd: The Althttpd Webserver". sqlite.org. Retrieved 19 May 2023.

Read other articles:

Ferosena Nama Nama IUPAC ferrocene, bis(η5-cyclopentadienyl)iron Nama lain dicyclopentadienyl iron Penanda Nomor CAS 102-54-5 Y Model 3D (JSmol) Gambar interaktif 3DMet {{{3DMet}}} ChEBI CHEBI:30672 N ChemSpider 7329 Y Nomor EC PubChem CID 11985121 Nomor RTECS {{{value}}} UNII U96PKG90JQ Y CompTox Dashboard (EPA) DTXSID9025326 InChI InChI=1S/2C5H5.Fe/c2*1-2-4-5-3-1;/h2*1-5H;/q2*-1;+2 YKey: KTWOOEGAPBSYNW-UHFFFAOYSA-N YInChI=1/2C5H5.Fe/c2*1-2-4-5-3-1;/h2*1-...

 

Basilika Yesus dari NazarethBasilika Minor Yesus dari NazarethBasilika Yesus dari NazarethLokasiAtalayaNegara PanamaDenominasiGereja Katolik RomaArsitekturStatusBasilika minorStatus fungsionalAktif Basilika Yesus dari Nazareth adalah sebuah gereja basilika minor Katolik yang terletak di Atalaya, Panama. Basilika ini didedikasikan kepada Tuhan Yesus yang berasal dari Nazaret. Basilika ini diberikan statusnya pada tahun 1964.[1] Lihat juga Gereja Katolik Roma Gereja Katolik di Pana...

 

Pour les articles homonymes, voir Besnard. Ne doit pas être confondu avec Albert-Henri Besnard. Albert BesnardM. Albert Besnard, peintre (1913), photographie de l'Agence de presse Meurisse. Paris, Bibliothèque nationale de France.FonctionsFauteuil 13 de l'Académie française27 novembre 1924 - 4 décembre 1934Pierre LotiLouis GilletDirecteur de l'Académie de France à Rome (d)1913-1921Carolus-DuranDenys PuechBiographieNaissance 2 juin 18497e arrondissement de ParisDécès 4 décembre 1934...

Voce principale: Promozione 1979-1980. Promozione Lombardia 1979-1980 Competizione Promozione Sport Calcio Edizione 24ª Organizzatore FIGC - LNDComitato Regionale Lombardo Luogo  Italia Cronologia della competizione 1978-1979 1980-1981 Manuale Nella stagione 1979-1980 la Promozione era sesto livello del calcio italiano (il massimo livello regionale). Qui vi sono le statistiche relative al campionato in Lombardia. Il campionato è strutturato in vari gironi all'italiana su base regional...

 

Voce principale: Spezia Calcio. Associazione Calcio SpeziaStagione 1950-1951Sport calcio Squadra Spezia Allenatore Sergio Bertoni Presidente Mario Farina Serie B17º posto. Retrocesso in Serie C. Maggiori presenzeCampionato: Frugali, Sgobbi (38) Miglior marcatoreCampionato: Frugali, Malavasi (8) 1949-1950 1951-1952 Si invita a seguire il modello di voce Questa voce raccoglie le informazioni riguardanti l'Associazione Calcio Spezia nelle competizioni ufficiali della stagione 1950-1951. I...

 

Jai CourtneyCourtney pada tahun 2016Lahir15 Maret 1986 (umur 38)Sydney, New South Wales, AustraliaPekerjaanAktorTahun aktif2005–sekarang Jai Courtney (/dʒaɪ/;[1] lahir 15 April 1986) adalah seorang aktor Australia. Dia memulai karirnya dengan peran kecil dalam film dan serial televisi sebelum berperan sebagai Charlie di action film Jack Reacher (2012). Dia telah pergi untuk membintangi A Good Day to Die Hard (2013), I, Frankenstein (2014) dan The Exception (2016). Court...

Building in St Albans Hertfordshire, EnglandVerulam HouseVerulam House, St AlbansGeneral informationTown or citySt Albans HertfordshireCountryEnglandConstruction started1825 Verulam House is located in Verulam Road, St Albans on the northwestern side between Church Crescent and Britton Avenue opposite College Street. It has previously been referred to as Diocesan House and also known as the Bishop's Palace. It is of early nineteenth-century origin and is a Grade II Listed Building.[1]...

 

Omer AvitalOmer Avital nel 2012 Nazionalità Israele GenereJazz Periodo di attività musicale1992 – in attività Strumentocontrabbasso, oud Sito ufficiale Modifica dati su Wikidata · Manuale Omer Avital (Giv'atayim, 1971) è un bassista, compositore e bandleader israeliano di musica jazz.[1] Indice 1 Biografia 2 Carriera 3 Discografia 4 Discografia come co-direttore, arrangiatore, produttore o accompagnatore 5 Note 6 Collegamenti esterni Biografia Avita...

 

كرنفال سوابيا، ألمانيا. كرنفال أو عيد المَرفَع[1] أو أيام الرفاع[2] أو الكزيرة[2] (الإنجليزية: Carnival) هو احتفال وإستعراض شعبي، يجمع بين السيرك والاحتفالات الشعبيّة التي تجوب الشوارع، وعادًة ما تكون هذه الاستعراضات في موسم الكرنفال. وتعتبر الكرنفالات تقليد كاثوليك...

NCAA Women's Volleyball head coach (2017-present) Robyn Ah MowPersonal informationFull nameRobyn Mokihana Ah MowBorn (1975-09-15) September 15, 1975 (age 48)Honolulu, Hawaii, U.S.Height5 ft 7 in (1.70 m)Volleyball informationPositionSetterNumber11 (national team)Career YearsTeams 2007–08Volero ZurichNational team 1998–2009 United States Medal record Women's volleyball Representing the  United States Olympic Games 2008 Beijing Team FIVB World Cup 2007 Jap...

 

Karolin Margret Natasa Bupati Landak Ke-4Masa jabatan22 Mei 2017 – 22 Mei 2022PresidenJoko WidodoWakilHerculanus HeriadiPendahuluAdrianus Asia SidotPenggantiSamuel (pj.)Anggota DPR RI Dapil Kalimantan BaratMasa jabatan1 Oktober 2014 – 24 Oktober 2016PresidenSusilo Bambang YudhoyonoJoko WidodoPendahulu-PenggantiErwin TPL TobingDaerah pemilihanKalimantan BaratMayoritas397.481 suara (tertinggi nasional)Masa jabatan1 Oktober 2009 – 1 Oktober 2014PresidenSusilo...

 

American trainset 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: General Pershing Zephyr – news · newspapers · books · scholar · JSTOR (November 2012) (Learn how and when to remove this message) 9908 Silver Charger on display in 2008 General Pershing Zephyr Legend St. Louis Washington Avenue West Alton Mexi...

Suburb of Perth, Western AustraliaMerriwaPerth, Western AustraliaBaltimore Parade and the Merriwa PlazaCoordinates31°39′58″S 115°43′05″E / 31.666°S 115.718°E / -31.666; 115.718Population5,587 (SAL 2021)[1]Established1980sPostcode(s)6030Area2.3 km2 (0.9 sq mi)Location36 km (22 mi) from Perth CityLGA(s)City of WannerooState electorate(s)ButlerFederal division(s)Pearce Suburbs around Merriwa: Quinns Rocks Butler Butler Qu...

 

Meat stew originating in the Indian subcontinent 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: Nihari – news · newspapers · books · scholar · JSTOR (August 2017) (Learn how and when to remove this message) NihariMutton NihariCourseBreakfast, lunch, dinnerPlace of originIndian subcontinentRegion or stateLuc...

 

Federal Transit Administration Información generalTipo agencia federal de Estados UnidosSede Washington D. C.OrganizaciónDirección James S. Simpson (Administrador)Depende de Departamento de TransporteHistoriaFundación 9 de julio de 1964www.fta.dot.gov[editar datos en Wikidata] La Administración Federal de Transporte[1]​ (Federal Transit Administration, FTA, anteriormente UMTA - Urban Mass Transit Administration o Administración de Tránsito Masivo Urbano) ...

American pop vocal band (1934–1954) The Ink SpotsThe Ink Spots in 1944Background informationOriginIndianapolis, Indiana, United StatesGenresPopeasy listeningswingYears active1934–1954LabelsVictorDeccaWebsiteInkspots.comMusical artist The Ink Spots were an American vocal pop group who gained international fame in the 1930s and 1940s. Their unique musical style predated the rhythm and blues and rock and roll musical genres, and the subgenre doo-wop. The Ink Spots were widely accepted in bot...

 

يفتقر محتوى هذه المقالة إلى الاستشهاد بمصادر. فضلاً، ساهم في تطوير هذه المقالة من خلال إضافة مصادر موثوق بها. أي معلومات غير موثقة يمكن التشكيك بها وإزالتها. (ديسمبر 2018) موريشيوس في الألعاب الأولمبية علم موريشيوس رمز ل.أ.د.  MRI ل.أ.و. لجنة موريشيوس الأولمبية تاريخ أ�...

 

Drs.Mahfudz SiddiqM.Si Sekretaris Jenderal Partai Gelombang Rakyat IndonesiaPetahanaMulai menjabat 10 November 2019Anggota Dewan Perwakilan Rakyat Republik IndonesiaMasa jabatan1 Oktober 2004 – 1 Oktober 2019Daerah pemilihanJawa Barat VIII Informasi pribadiLahir25 September 1966 (umur 57)Jakarta, IndonesiaPartai politikPKS (sampai 2019)Gelora (2019-sekarang)Suami/istri Triyekti Kusumaningsih (—2016) Agatha Lily (2016—) Anak10Alma materUniversitas IndonesiaUniversitas N...

Questa voce sull'argomento calciatori tedeschi è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Segui i suggerimenti del progetto di riferimento. Jean ZimmerNazionalità Germania Altezza173 cm Peso74 kg Calcio RuoloDifensore Squadra Kaiserslautern CarrieraGiovanili 2004-2012 Kaiserslautern Squadre di club1 2012-2014 Kaiserslautern II59 (1)2013-2016 Kaiserslautern61 (5)2016-2017 Stoccarda16 (0)2017-2018→  Fortuna Dü...

 

Y-93 redirects here. For the isotope of yttrium (Y-93 or 93Y), see Yttrium-93. Radio station in Bismarck, North DakotaKYYYBismarck, North DakotaBroadcast areaBismarck–MandanFrequency92.9 MHzBrandingMix 92.9ProgrammingFormatAdult contemporaryOwnershipOwneriHeartMedia, Inc.(iHM Licenses, LLC)Sister stationsKBMRKFYRKQDYKSSSKXMRHistoryFirst air dateAugust 15, 1966(57 years ago) (1966-08-15) (as KFYR-FM)Former call signsKFYR-FM (1966–1978)Call sign meaningSupporting Y93 moniker, deri...