# http Server selber schreiben



## saskia (20. Jun 2006)

Hallo, ich habe angefangen einen httpServer zu schreiben. Get request werden auch schon berücksichtigt, normale html Seiten werden schon angezeigt, nur hab ich jetzt keine Ahnung, wie ich einen Post verarbeiten soll. Vom DataInputStream des Sockets, hab ich mal herausgefiltert, ob es sich um Get, Post oder was anderes handelt. Wie muss ich nun weiter vorgehen? Soll entweder zur bearbeitung von Servlets, oder cgi dienen.


----------



## kama (20. Jun 2006)

Hallo,


			
				saskia hat gesagt.:
			
		

> normale html Seiten werden schon angezeigt,


Sorry habe ich was misverstanden? Du willst doch einen Http Server machen und keinen Browser oder?
MfG
Karl Heinz


----------



## saskia (20. Jun 2006)

ja sicher, und auf den Server hab ich mal Testseiten laufen lassen


----------



## foobar (20. Jun 2006)

Der einzige Unterschied ist, das bei Post die Paramter im Body übertragen werden und nicht an die URL angehängt werden. D.h. du mußt jetzt den Http-body parsen und daraus Objekte bauen oder was  auch immer.
Guck dir mal die HTTp-Spezifikation an, da steht alles drin. Ich habe auch mal einen kleinen Webserver geschrieben für Interprozesskommunikation. Das ist total praktisch wenn man z.b. wissen will ob ein Programm schon gestartet wurde oder welchen Zustand es gerade hat. Dann kann man mit XML-RPC over HTTP den Server ansprechen und sich Informationen ziehen.

Viele Grüße
foobar


----------



## saskia (21. Jun 2006)

ok, so weit klar, nur hab ich irgendwie keinen plan, wie ich an den body komme. Kann mir wer einen Tip geben


----------



## Murray (21. Jun 2006)

saskia hat gesagt.:
			
		

> ok, so weit klar, nur hab ich irgendwie keinen plan, wie ich an den body komme. Kann mir wer einen Tip geben


Einfach nach dem Header weiter aus dem Stream lesen - der Header wird durch eine Leerzeile beendet, danach folgen die Post-Daten. Wenn im Header das Content-Length-Feld gesetzt war (das sollte bei POSTs der Fall sein), dann weisst Du schon, wieviele Daten Du lesen musst; ansonsten kannst Du nur hoffen, dass auch nach den POST-Daten eine Leerzeile kommt (das ist m.W. normalerweise so, wird aber durch das Protokoll wohl nicht explizit gefordert)
Genau kannst Du das in den entsprechenden RFCs (1945 und 2616) nachlesen


----------

