http request GET, winsock immer so?
-
weis jez auch nicht ob das hier her gehört, aber wenn man einen HTTP request an einen Server für eine Exe Sendet wird dann immer der HTTP header gesendet und gleich im darauffolgenden die EXE wie hier in meinem Beispiel? man sieht ja das Mit MZ die EXE beginnt (zeile 5):
Inhalt des Transfers: HTTP/1.1 200 OK♪◙Server: nginx/0.6.32♪◙Date: Mon, 13 Dec 2010 12:51:02 GMT♪ ◙Content-Type: application/octet-stream♪◙Content-Length: 8404896♪◙Last-Modified: Fri, 03 Dec 2010 19:44:18 GMT♪◙Connection: keep-alive♪◙Accept-Ranges: bytes♪◙♪◙ MZ? ????????? ??? ?↓Ä↓??????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????? ??????????????????????↓?↓??? ? ☻ ♦ ??☻ ? ????????????? ┼┼┼┼┼┼┼┼┼┼┼┼┼ ??? ► ????????????? ???┼┼┼┼┼┼┼┼┼┼┼┼ ┼┼┼ ????????????? ???????????? ? ? ??? ???ÿ ? µ ? ????????????????????????????????? ???????? ?????↓?↓??u ☻ ◙ ???↓?↓?↓?↓?↓?↓?↓?↓?↓?↓?↓?↓?↓?↓?↓?↓?↓?↓?↓?↓?↓┘↓?↓?↓♀↓?↓?↓?↓?↓?
-
Hallo,
zwischen dem HTTP-Header un den eigentlichen Daten folgt immer eine Leerzeile. Die Zeilenumbrüche in Deinem Beispiel sehen zwar etwas merkwürdig aus, aber ansonsten ist das alles so in Ordnung. Du muß also nur bis zu ersten Leerzeile die Anwort des Servers überlesen. Der Rest sind dann die eigentlichen Nutzdaten.
Allerdings gibt es schon ein paar Fallen. So könnte der Server auch einen anderen HTTP-Response liefern. Du solltest daher den HTTP-HEader nicht einfach ignorieren.
mfg Martin
-
jo am besten falls ich voerher bescheid weiss und das sollte ich ob ich eine exe transferiere oder nicht werd ich wohl einfach nach dem MZ scannen, um den beginn zu erhalten,!
ist die Content-Length angabe mit oder ohne dem Header?
-
Um Gottes Willen, nein. Wieso nach MZ suchen, was nur in sehr, sehr speziellen Fällen funktioniert (wenn der Content ist eine PE-Datei ist und MZ nirgendwo im Header vorkommt), wenn du es stattdessen gleich richtig machen kannst und einfach nach einem doppelten Zeilenumbruch suchen kannst.
Content-Length-Angabe versteht sich ohne Header.
-
aha es ist fix immer so das nach dem header der erste doppelte zeilenumbruch das ende des Header ist und danach der anfang des content?
-
buntehaare schrieb:
aha es ist fix immer so das nach dem header der erste doppelte zeilenumbruch das ende des Header ist und danach der anfang des content?
Richtig - wobei es natürlich auch sein kann, dass kein Content folgt.