<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Simple_Common_Gateway_Interface</id>
	<title>Simple Common Gateway Interface - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Simple_Common_Gateway_Interface"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Simple_Common_Gateway_Interface&amp;action=history"/>
	<updated>2026-05-20T03:16:08Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Simple_Common_Gateway_Interface&amp;diff=1502029&amp;oldid=prev</id>
		<title>imported&gt;Trustable: +Kategorie:Webserver (Thema)</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Simple_Common_Gateway_Interface&amp;diff=1502029&amp;oldid=prev"/>
		<updated>2026-01-17T17:17:55Z</updated>

		<summary type="html">&lt;p&gt;+&lt;a href=&quot;/index.php?title=Kategorie:Webserver_(Thema)&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Kategorie:Webserver (Thema) (Seite nicht vorhanden)&quot;&gt;Kategorie:Webserver (Thema)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Das &amp;#039;&amp;#039;&amp;#039;Simple Common Gateway Interface&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;SCGI&amp;#039;&amp;#039;&amp;#039;) ist ein textbasiertes [[Netzwerkprotokoll]] für die Anbindung eines [[Anwendungsserver]]s an einen [[Webserver]]. Es ist eine Alternative zu [[Hypertext Transfer Protocol|HTTP]] und dem klassischen [[Common Gateway Interface|CGI]] und ähnelt dem [[FastCGI]]-Protokoll.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Protokollbeschreibung ==&lt;br /&gt;
Jeder SCGI-Request ([[Englische Sprache|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.&lt;br /&gt;
&lt;br /&gt;
Durch die Kodierung der Header als Netstring beginnt jeder SCGI-Request mit einer Ziffer. Da dieser deshalb mit einem ASCII Byte zwischen &amp;#039;1&amp;#039; und &amp;#039;9&amp;#039; beginnt, kann dieser 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.&lt;br /&gt;
&lt;br /&gt;
Für die Antwort ist im Protokoll kein Format definiert.&amp;lt;ref&amp;gt;[http://python.ca/scgi/protocol.txt SCGI-Spezifikation, § 2]&amp;lt;/ref&amp;gt; Es ist allerdings wie bei CGI üblich, dass die Antwort mit dem Status-Parameter beginnt.&lt;br /&gt;
&lt;br /&gt;
=== Header ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Key&amp;gt; || &amp;lt;NUL&amp;gt; || &amp;lt;Value&amp;gt; || &amp;lt;NUL&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Wie oben dargestellt besteht jeder Header aus einem Key-Value-Pair ([[Englische Sprache|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.&lt;br /&gt;
&lt;br /&gt;
=== SCGI-Request ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Länge des Netstrings&amp;gt;: || &amp;quot;CONTENT_LENGTH&amp;quot; || &amp;lt;NUL&amp;gt; || &amp;lt;Länge des Body&amp;gt; || &amp;lt;NUL&amp;gt; || &amp;quot;SCGI&amp;quot; || &amp;lt;NUL&amp;gt; || 1 || &amp;lt;NUL&amp;gt; || ... || &amp;quot;,&amp;quot; ||&amp;lt;Body&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Der erste Header muss den Schlüssel &amp;quot;CONTENT_LENGTH&amp;quot; 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 &amp;quot;SCGI&amp;quot; und Wert 1.&lt;br /&gt;
&lt;br /&gt;
== Webserverunterstützung ==&lt;br /&gt;
Folgende Webserver unterstützen das SCGI-Protokoll.&lt;br /&gt;
&lt;br /&gt;
* [[Apache HTTP Server]]&lt;br /&gt;
* [[Lighttpd]]&lt;br /&gt;
* [[Nginx|Nginx Server]]&lt;br /&gt;
* Althttpd&amp;lt;ref&amp;gt;{{Internetquelle |url=https://sqlite.org/althttpd/doc/trunk/althttpd.md |titel=Althttpd: The Althttpd Webserver |abruf=2023-05-19}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sprachanbindung ==&lt;br /&gt;
Folgende Programmiersprachen unterstützen die Erstellung von SCGI-Applikationen per [[Sprachanbindung]]:&lt;br /&gt;
* [[D (Programmiersprache)|D]]&lt;br /&gt;
* [[Ruby (Programmiersprache)|Ruby]]&lt;br /&gt;
* [[Python (Programmiersprache)|Python]]&lt;br /&gt;
* [[Lisp]]&lt;br /&gt;
* [[Perl (Programmiersprache)|Perl]]&lt;br /&gt;
* [[Haskell (Programmiersprache)|Haskell]]&lt;br /&gt;
* [[Java (Programmiersprache)|Java]]&lt;br /&gt;
* [[PHP]]&lt;br /&gt;
* [[Tcl]]&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://python.ca/scgi/protocol.txt SCGI-Spezifikation]&lt;br /&gt;
* [http://cr.yp.to/proto/netstrings.txt Netstrings-Spezifikation]&lt;br /&gt;
* [http://python.ca/scgi/ Apache SCGI-Module und Python SCGI-Interface]&lt;br /&gt;
* [http://www.cherokee-project.com/bugs/browser/cherokee/trunk/cherokee/handler_scgi.c Cherokee SCGI-Modul]&lt;br /&gt;
* [http://metacpan.org/module/SCGI Perl SCGI-Interface]&lt;br /&gt;
* [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/scgi Haskell SCGI Package]&lt;br /&gt;
* [http://code.google.com/p/appserver-in-php/ PHP SCGI Libraries]&lt;br /&gt;
* [http://wiki.codemongers.com/NginxNgxSCGIModule Nginx SCGI-Modul]&lt;br /&gt;
* [http://woof.sourceforge.net/woof-ug/_woof/docs/ug/start_scgi WOOF! Framework]&lt;br /&gt;
&lt;br /&gt;
{{Navigationsleiste Webserver-Schnittstellen}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Webserver (Thema)]]&lt;br /&gt;
[[Kategorie:Netzwerkprotokoll auf Anwendungsschicht]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Trustable</name></author>
	</entry>
</feed>