Die Weiterleitung der Daten an das Programm kann dann je nach Methode auf eine unterschiedliche Art vonstatten gehen:
Egal, welche der oben genannten Methoden Verwendung findet, das Programm muß nun eine Ausgabe liefern, und zwar ein legales HTTP-Objekt, sei es nun eine HTML-Seite oder eine Grafik. Dazu muß es auf die Standard-Ausgabe stdout zuerst den Header schreiben, dann eine Leerzeile und dann die eigentlichen Daten.
Beim Header ist es üblich, nur die Content-Type-Zeile zu schreiben (welche auch zwingend ist), damit der Typ des Dokuments vom Client ermittelt werden kann.
Nach der Leerzeile kommen dann die eigentlichen Daten, also im Falle eines Content-Types von text/html die HTML-Seite. Dies wird dann an den Client gesendet.
Ein Beispiel hierzu ist:
Content-type: text/html <HTML><HEAD> <TITLE>output of HTML from CGI script</TITLE> </HEAD><BODY> <H1>Sample output</H1> What do you thing of <STRONG>this?</STRONG> </BODY></HTML>
Im obigen Beispiel der Kulturbox (ein Berliner Kunst- und Künstler-Server, der auch Informationen über Berlin enthält) kann man z. B. auf diese Weise Betten buchen.
Forms sind übrigens nicht die einzige Anwendung von CGI-Programmen . Wie im Abschnitt über die URIs schon erwähnt wurde, kann man auch eine Suchanfrage in einen GET-Request einbinden, indem man als Bestandteil des URI noch ein ,, ?`` einbaut und dahinter die Suchanfrage formuliert. Dies funktioniert dann auf die gleiche Weise, wie oben bei den Forms beschrieben, nämlich über die Environment-Variable QUERY_STRING .