Http Post an Php Stdin

Alles, was den Apache betrifft, kann hier besprochen werden.

Http Post an Php Stdin

Postby Aeos » 09. September 2008 13:40

Hallo Forum,

ich suche nach einer Möglichkeit, folgendes zu realisieren:

- Html-Formular sendet Daten via HTTP-POST
- Apache nimmt diese entgegen und leitet Sie an den STDIN Kanal von Php weiter, ruft angesprochendes Php-Script auf

Ist dies möglich und wenn ja - wo ist der Ansatz? Die Apache- und Php-Dokumentation hilf mir leider nicht weiter. Wichtig ist, dass die eingehenden Daten auch ohne Vollständigkeit übergeben werden, damit Php bereits mit der Verarbeitung beginnen kann.

Lieben Gruß,
Sascha 'w3ksel' Schulz
Aeos
 
Posts: 4
Joined: 22. September 2006 07:30
Location: Hamburg

Postby Wiedmann » 09. September 2008 13:43

- Html-Formular sendet Daten via HTTP-POST
- Apache nimmt diese entgegen und leitet Sie an den STDIN Kanal von Php weiter, ruft angesprochendes Php-Script auf

Das ist das normale vorgehen bei CGI Scripts. PHP (oder Perl) bekommt da die Daten eines POST-Requests immer über STDIN.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Aeos » 09. September 2008 14:01

Gut zu wissen. Ich bin seit ein paar Tagen in diesem Problem verbissen und langsam schwirrt mir ein wenig der Kopf.

Wartet der Apache mit dem Aufruf des Cgi-Scripts bis die gesamten POST-Daten übermittelt wurden? Nehmen wir an, ein Bild wird mittels Html-Formular übertragen, was würde der Apache Server mit dem Request anfangen?

EDIT (Im Zuge der Verständlichkeit):

Ich meine, dass ein Html-Formular mittels HTTP-POST (enctype="multipart/form-data") eine ausgewählte Datei (Bsp.: Bild "example.gif") an den Server sendet.
Aeos
 
Posts: 4
Joined: 22. September 2006 07:30
Location: Hamburg

Postby Aeos » 09. September 2008 16:14

Ist jemandem bekannt, wo dokumentiert ist, wie der Apache mit Post-Requests umgeht? Ich meine hiermit präzise Aussagen zu den Abläufen sowie deren Konfigurationsmöglichkeiten. In der Allgemeinen Apache-Dokumentation werde ich leider nicht fündig.
Aeos
 
Posts: 4
Joined: 22. September 2006 07:30
Location: Hamburg

Postby glitzi85 » 09. September 2008 18:53

Für den Apachen macht es keinen großen Unterschied ob da jetzt ein GET oder POST Request eintrudelt, lediglich der Header ist anders und am Ende kommen halt noch die codierten Daten.

Konfigurieren kannst du das ganze eigentlich nur über Filter: http://httpd.apache.org/docs/2.2/filter.html

Ansonsten ist mir nicht ganz klar was du eigentlich haben willst. Wenn der Apache erkennt dass da ein CGI-Script aufgerufen wird dann startet mod_cgi den entsprechenden Interpreter und leitet diesem die POST-Daten über STDIN in codierter Form zu nachdem sie durch die Input-Filter durch sind. Alles was dann auf STDOUT wieder rauskommt wird an den Client gesendet, nachdem es die Output-Filter durchlaufen hat. Also so in etwa:

HTTP-Request -> Input-Filter -> mod_cgi -> Output-Filter -> Client

mfg glitzi
User avatar
glitzi85
 
Posts: 1920
Joined: 05. March 2004 23:26
Location: Dahoim

Postby Aeos » 10. September 2008 14:57

Hallo Glitzi,

vielen Dank für die Infos, werde ich mir gleich mal ansehen. Mein Vorhaben ist folgendes:

1. Es gibt ein Html-Formular, welches ein File-Control Feld beinhaltet (input type:file)
2. Datei wird ausgewählt
3. Formular wird abgesendet (method: post; enctype: multipart/formdata) an das zuständige Cgi-Script (php/perl)
4. Dieses Script empfängt die Daten so, dass sie bereits während der Übertragung der Post-Daten verarbeitet werden können

Wozu das ganze?
Schicke ich eine Datei von ca. 20Mb an das Script dauert es eine ganze Weile, ehe das Script beginnt. Anscheinend müssen vorher die gesamten Post-Daten übertragen sein - diesen Vorgang möchte ich gerne abkürzen.

Liebe Grüße,
Sascha w3ksel Schulz
Aeos
 
Posts: 4
Joined: 22. September 2006 07:30
Location: Hamburg


Return to Apache

Who is online

Users browsing this forum: No registered users and 4 guests