Andreas Korthaus: HTTP-Proxyserver programmieren

Beitrag lesen

Hallo Alex!

Hast Du den Ehrgeiz, den Code selbst aus den RFCs abzuleiten?

Das nicht, ich habe ja nicht vor die Menscheit mit noch einem Proxyserver zu beglücken ;-) Es geht mir nur darum ein bisschen an diesem Beispiel zu lernen, da man hier Streams auf verschiedene Weise einsetzt, dazu Tokens... halt so Sachen die ich von PHP nicht kenne. Und das ganze dann noch kombiniert mit HTTP Client und Server Funktionalitäten. Und erst wenn man wirklich was praktisches probiert sieht man was man nicht kann ;-)

Ich gehe in solchen Fällen immer von funktionierenden Beispielen aus.

Ja, das mache ich normalerweise aus, aber was bringt mir dass wenn ich Code verwende den ich nichtmal so richtig verstehe bzw. in zukünftigen Projekten selber verwenden könnte?

Daran lässt sich am einfachsten die gundlegende Funktion erkennen.

Das stimmt, angucken würde ich mir gerne mal was, aber ehrlich gesagt habe ich bisher wirkoich _überhaupt_ nichts zu dem Thema gefunden, sondern im Prinzip alles selber zusammengebastelt. Naja, dem entsprechend schlecht funktioniet es.

Wenn ich das mal mit PHP vergleiche, wen ich da einen HTTP-Header habe, dann würde ich den Erstmal zeilenweise in ein Array lesen, und dann die Elemente mit explode entsprechend zerteilen. Ja, in Java gibt es auch Arrays, und es gibt auch Split, aber zum einen finde ich das in PHP einfacher, und zum anderen denke ich das man in Java durch entsprechende Methoden zum lesen von Streams bzw. die Verwendung von Tokens andere Möglichkeitenhat, die ich gerne mal kennenlernen würde, nur eben nicht so recht weiß ich wie man das macht.

Speziell für Java sollte es da doch was geben.

ungetestet:
http://www.nsftools.com/tips/JavaTips.htm#javaproxy
http://www.nsftools.com/tips/jProxy.java

Vielen Dank, das werde ich mir gleich mal ansehen.

Eine 2. "Unart" die ich mir bei PHP angewöhnt habe ist wie ich mit Datenströmen umgehe, da lese ich normalerweise auch alles zeilenweise ein, kopiere am besten jeden einzelne geparste Zeile mindestens einmal in eine andere Variable(Copy by Value), lese splitte das dann nochmal in einen Array, oder bearbeite es mit regulären Ausdrücken... und heute wird das ja noch schlimer, da wird oft erst die ganze Dateit in eien Array kopiert, der dann Element für Element abgearbeitet wird. Ich denke mit den Stream-Klassen und Tokenizer-Klassen in Java kann man das effektiver machen, nur mache ich das jetzt _mit_ diesen Klassen eigentlich genauso wie ich es vorher mit PHP gemacht habe - das ist mein Problem. Irgendwie kann ich die Vorteile der vorhandenen Methoden noch nicht in der Praxis umsetzen.

Viele Grüße
Andreas