shevegen: Ein HTTP "Stream"

Hi, hab nicht so recht einen passenden Titel gewählt.
Vorweg - ich hab den Link gebookmarked, werde alle paar
Stunden vorbeischauen. Ich habe genug Zeit, mein Wissen ist
jedoch wohl noch ein wenig spärlich, worum geht es überhaupt:

Ich will eine Art "Datei" haben, die einen Stream an den
  browser eines Besuchers schickt. Vorweg! Mit Besucher meine
  ich primär mich selbst ... ;)

Die Idee ist, einen "html string" zu schicken, anstatt
das ich eine foobar.html page an den Besucher schicke.

Soweit ich weiss (bin hier unsicher), muss ich als erste Zeile
"Content-type: text/html\n\n"
schicken.

Nun, kann ich bereits meinen "html string", also den eigentlichen Inhalt, dynamisch verändern nach Lust und Laune (mehrere kleinere Skripten erledigen dies). Langfristig soll
jedes URL/Verzeichnis andere strings generieren können, so ähnlich wie man das auch von ruby on rails, oder php/cgi mit ?variable=55 kennt

Aber wie schaffe ich, das Apache sozusagen eine "besondere" Datei, eben den Stream, nutzt?

PS: Ich bin mir bewusst, das das ganze noch ein wenig konfus klingt. Aber in den nächsten Tagen werde ich mich sowieso weiter in die Materie einlesen.

  1. Hallo shevegen,

    Vorweg - ich hab den Link gebookmarked, werde alle paar
    Stunden vorbeischauen.

    sehr angebrachtes Verhalten in einem Diskussionsforum. Ich zu meiner Schande muss zugeben, dass ich in den letzten 2 Jahren im SELFFORUM vielleicht hochgerechnet 24 Stunden verbracht habe. Liegt aber leider an akutem Zeitmangel ;-(

    Ich will eine Art "Datei" haben, die einen Stream an den
      browser eines Besuchers schickt. Vorweg! Mit Besucher meine
      ich primär mich selbst ... ;)

    du meinst, dein Server soll eine Seite an den Client "pushen", ohne
    dessen HTTP-Request?

    Die Idee ist, einen "html string" zu schicken, anstatt
    das ich eine foobar.html page an den Besucher schicke.
    Soweit ich weiss (bin hier unsicher), muss ich als erste Zeile
    "Content-type: text/html\n\n"
    schicken.

    Ich glaube du verwechselst einiges. Jene Zeile (genauer gesagt sind es ja
    3, denn "\n" stellt einen Zeilenumbruch dar) stellt die ersten Ausgaben,
    die ein CGI-Programm ausgeben muss, dar. Erst mal so generell.

    Nun, kann ich bereits meinen "html string", also den eigentlichen Inhalt, dynamisch verändern nach Lust und Laune (mehrere kleinere Skripten erledigen dies). Langfristig soll jedes URL/Verzeichnis andere strings generieren können, so ähnlich wie man das auch von ruby on rails, oder php/cgi mit ?variable=55 kennt

    ah, ich glaube, ich weiß langsam, worauf du raus willst. Es geht dir lediglich um dynamische Programmierung von Webseiten, nicht wahr?

    Aber wie schaffe ich, das Apache sozusagen eine "besondere" Datei, eben den Stream, nutzt?

    Mal ganz technisch: mod_cgi oder ein entsprechendes "Sprachenmodul" wie mod_php und mod_perl. Und jetzt die ausführliche Variante: CGI ist quasi ein "Interface", mit dem ein Programm nur noch seine Ausgaben in die Standardausgabe schreiben muss. Jene Querystring-Parameter (?variable=55) gibts über Umgebungsvariablen. Als erste Zeile für ein HTML-Dokument muss dann, wie du bereits weißst, "Content-Type: text/html" stehen, anschließend zwei Leerzeilen ("\n\n"). Dann kann quasi alles kommen, was dein Programm schreiben kann.

    Mit PHP oder Perl wird dir die halbe Arbeit dabei schon abgenommen (PHP sowieso, bei Perl mit dem CGI-Modul), sodass du dich weder um jene HTTP-"Headererweiterung" oder das Parsen des Parameterstrings kümmern musst, sondern direkt in deine Seitenprogrammierung einsteigen kannst. Perl wird in SELFHTL erklärt, PHP ist aber imho erheblich einsteigerfreundlicher und einfacher.

    PS: Ich bin mir bewusst, das das ganze noch ein wenig konfus klingt. Aber in den nächsten Tagen werde ich mich sowieso weiter in die Materie einlesen.

    Ich lege dir insbesondere das entsprechende Kapitel in SELFHTML ans Herz.

    Viele Grüße,

    Sven