Christian Kruse: HTTP-Post und Headererkennung

Beitrag lesen

Hallo Reinhard,

Der Besucher soll gar nicht merken das die Daten von wo
anders kommen.

Wofuer willst du sowas?

Dabei soll das ganze auch bei Aufrufen mit POST
funktionieren. Ich benutze dabei die Funktion die bei
http://www.dclp-faq.de/q/q-code-post.html
beschrieben ist.

Da werden falsche Zeilenenden benutzt, man sollte statt \n
\015\012 benutzen.

Was ich aber zurückbekomme ist sowas wie:

+--------------------+
HTTP/1.1 100 Continue
Server: Microsoft-IIS/4.0
Date: Thu, 21 Nov 2002 14:51:41 GMT

HTTP/1.1 200 OK
Server: Microsoft-IIS/4.0
Date: Thu, 21 Nov 2002 14:51:42 GMT
Connection: close
MIME-Version: 1.0
Content-type: text/html

<html>
...
+--------------------+

d.h. es sieht so aus als ob zwei Header geschickt werden.

Korrekt. In der RFC steht darueber:

|10.1.1 100 Continue
|
|   The client may continue with its request. This interim
|   response is used to inform the client that the initial
|   part of the request has been received and has not yet
|   been rejected by the server. The client SHOULD continue
|   by sending the remainder of the request or, if the
|   request has already been completed, ignore this response.
|   The server MUST send a final response after the request
|   has been completed.

Ist sowas überhaupt erlaubt?

Jup, klar ist das erlaubt.

Vielleicht gehts ja weil der 1. Teil ein "100 Continue"
ist. Da kenn ich das Protokoll zu wenig.

Was genau meinst du?

Wie kann ich in den Fall feststellen wo der eigentliche
body beginnt?

HTTP-Header sind vom HTTP-Body durch ein '\015\012'
getrennt, also einer Leerzeile. Aber das bewahrt dich nicht
davor, zu interpretieren, was vom Server zurueck kommt. Will
heissen, statt einem 200 koennte auch ein '404 Not Found'
oder ein '500 Internal Server Error' oder, wie in diesem
Falle, ein '100 Continue' zurueck kommen. Erst bei einem
'200 Ok' kannst du dich darauf einstellen, dass der Body
folgt.

Wenn sowas nicht erlaubt ist, wie könnte sowas zustande
kommen? Wenn ich diese 'versteckte' URL mit dem Browser
angucke siehts jedenfalls richtig aus. Aber da weis ich ja
nicht was er für einen Header bekommt.

Das kannst du hier betrachten:

http://forum.de.selfhtml.org/cgi-bin/http_trace.pl

Gruesse,
 CK