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 .
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.
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".
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.
Interakční protokoly | |
---|---|
Brány |