SCGI

Simple Common Gateway Interface ( SCGI ) je protokol pro interakci aplikací s webovými (http) servery, vyvinutý jako alternativa k Common Gateway Interface . Je podobný FastCGI , ale snáze se implementuje.

Specifikace byla zveřejněna Neilem Schemenauerem <nas@python.ca> dne 12. ledna 2006 .

Specifikace

Klient se připojuje k serveru SCGI pomocí streamovacího protokolu, který umožňuje přenos 8bitových bajtů. Klient začíná odesláním požadavku. Když server SCGI uvidí konec požadavku, odešle zpět odpověď a uzavře spojení. Formát odpovědi není specifikován protokolem.

Formát požadavku

Požadavek se skládá z hlaviček a těla. Formát záhlaví:

hlavičky ::= hlavička* hlavička ::= jméno NUL hodnota NUL jméno ::= notnull+ hodnota ::= notnull+ notnull ::= <01> | <02> | <03> | ... | <ff> NUL=<00>

Duplicitní názvy nejsou povoleny. První hlavička musí mít název "CONTENT_LENGTH" a její tělo - neprázdná sekvence ASCII číslic - musí obsahovat délku těla zprávy (v desítkové soustavě). Hlavička 'CONTENT_LENGTH' by měla být vždy předána, i když je její hodnota 0. Hlavička 'SCGI' by měla být vždy předána s hodnotou 1. Pro usnadnění přechodu z CGI by proměnné prostředí CGI měly být předány jako hlavičky SCGI.

Záhlaví jsou odesílána zakódovaná jako netstring .  Tělo je odesláno po hlavičkách a jeho délka musí být určena hlavičkou "CONTENT_LENGTH".

Příklad

Webový server (SCGI klient) otevře spojení a odešle následující řádky

"70:" "CONTENT_LENGTH" <00> "27" <00> "SCGI" <00> "1" <00> "REQUEST_METHOD" <00> "POST" <00> "REQUEST_URI" <00> "/deepthought" <00> "," "Jaká je odpověď na život?"

Server SCGI odešle následující odpověď:

"Stav: 200 OK" <0d 0a> "Typ obsahu: text/prostý" <0d 0a> ""<0d0a> "42"

Server SCGI pak spojení uzavře.

Odkazy


Externí odkazy