Zum Inhalt springen

„Simple Common Gateway Interface“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
K Tippfehler
SCGI-Request: Header "SCGI: 1" muss nicht der zweite, sondern nur gesetzt sein.
Zeile 24: Zeile 24:
|}
|}


Der erste Header muss den Schlüssel "CONTENT_LENGTH" haben und darf nicht leer sein, selbst wenn die Länge des Body 0 beträgt. Danach muss ein Header mit dem Schlüssel "SCGI" und dem Wert 1 vorhanden sein. Alle weiteren Header sind optional.
Der erste Header muss den Schlüssel "CONTENT_LENGTH" haben und darf keinen leeren Wert haben, selbst wenn die Länge des Body 0 beträgt. Danach folgen alle übrigen Header, die aber optional sind mit Ausnahme eines mit Schlüssel "SCGI" und Wert 1.


== Webserverunterstützung ==
== Webserverunterstützung ==

Version vom 12. März 2017, 00:03 Uhr

Das Simple Common Gateway Interface (SCGI) ist ein text-basiertes Netzwerkprotokoll für die Anbindung eines Anwendungsservers an einen Webserver. Es ist eine Alternative zu HTTP und dem klassischen CGI und ähnelt dem FastCGI-Protokoll.

Die Spezifikation wurde von Neil Schemenauer erstellt und am 12. Januar 2006 als gemeinfreie Spezifikation veröffentlicht. Im Vergleich zu FastCGI ist das SCGI-Protokoll einfacher zu implementieren; moderne Webserver bieten mittlerweile gleichermaßen Unterstützung für FastCGI und SCGI an.

Protokollbeschreibung

Jeder SCGI-Request (engl. Anfrage) besteht aus einer Liste von Headern (Beschreibung des Inhalts) und einem Body (Inhalt). Die Header werden als Netstring kodiert und anschließend gefolgt vom Body über eine eigene Verbindung zur SCGI-Anwendung verschickt. Die Verbindung bleibt dabei bestehen und wird erst, nachdem die SCGI-Anwendung eine Antwort geschickt hat, beendet.

Da ein SCGI-Request mit einem ASCII '1' bis '9'-Byte beginnt, kann diese von einem HTTP-Forward unterschieden werden – eine laufende SCGI-Applikation kann so leicht in die Lage versetzt werden, gleichermaßen SCGI-Requests und HTTP GET/POST-Anfragen zu behandeln.

Für die Antwort ist im Protokoll kein Format definiert.[1] Es ist allerdings wie bei CGI üblich, dass die Antwort mit dem Status-Parameter beginnt.

<Key> <NUL> <Value> <NUL>

Wie oben dargestellt besteht jeder Header aus einem Key-Value-Pair (engl. Schlüssel-Wert-Paar). Dabei wird der Schlüssel mit einem ASCII-Null (NUL) vom Wert getrennt, sowie der Header mit einem ASCII-Null (NUL) abgeschlossen. Jeder Schlüssel muss eindeutig sein und darf folglich nur einmal vorkommen.

SCGI-Request

<Länge des Netstrings>: "CONTENT_LENGTH" <NUL> <Länge des Body> <NUL> "SCGI" <NUL> 1 <NUL> ... "," <Body>

Der erste Header muss den Schlüssel "CONTENT_LENGTH" haben und darf keinen leeren Wert haben, selbst wenn die Länge des Body 0 beträgt. Danach folgen alle übrigen Header, die aber optional sind mit Ausnahme eines mit Schlüssel "SCGI" und Wert 1.

Webserverunterstützung

Folgende Webserver unterstützen das SCGI-Protokoll.

Sprachanbindung

Folgende Programmiersprachen unterstützen die Erstellung von SCGI-Applikationen per Sprachanbindung:

Einzelnachweise

  1. SCGI-Spezifikation, § 2