Axel Richter: HTTP-Proxyserver programmieren

Beitrag lesen

Hallo,

Dann kann ich mir nur denken, dass da zwischen in.read() und out.write() zuviel Zeit vergeht, die Manipulation also zu lange dauert. Da könnte man eventuell die Puffergröße mal verkleinern:

Das glaube ich nicht. Wie groß sind HTML-Seiten? Was soll da so lange dauern? Und was sol daran schlimm sein? PHP ist siehr deutlich langsamer, aber da habe ich schon erheblich "wildere" Sachen gemacht ;-)

Ähm:
Bei PHP _weiß_ der Server von der Langsamkeit. Der Server liefert erst das durch PHP gelaufene HTML via HTTP aus. Der Client merkt von _dieser_ Langsamkeit nichts. Er sieht einen langsamen Server.

Bei einem Proxy denkt der Server, er liefere an einen User-Agent. Der Client meint, er erhielte von einem Server. Keiner der beiden nimmt Rücksicht auf Verzögerungen im Proxy.

byte[] buf = new byte[1024];

Damit sollte das replaceAll() eventuell schneller werden.

Aber insgesamt langsamer, oder?

Ja, aber der Stream wird insgesamt flüssiger. Nicht:

  • l a n g e   P a u s e -4096Byte, sondern:
    -kurze Pause-1024Byte-kurze Pause-1024Byte-kurze Pause-1024Byte-kurze Pause-1024Byte
  1. Ich lese und schreibe die Daten nicht byteweise(nur bei content-type html), sondern zeilenweise mit readline als String, und verwende replace auf jede line, und schreibe den veränderten String dann wieder auf "out"

Ich versuche jetzt aber nochmal "methode 2." ;-)

Probiers aus.

viele Grüße

Axel