# Servlet-Request abbrechen?



## nk (14. Sep 2007)

Hallo,

ich arbeite gerade an einem Servlet, das nur die Header-Informationen eines POST-Requests auslesen und sich dann beenden soll. Das funktioniert auch alles soweit, nur dass der Client auch noch den Request-Body sendet, obwohl ich den ja eigentlich gar nicht brauche. Da dieser Body teilweise sehr groß es, wäre es gut, wenn der User nicht jedes Mal warten müsste, bis er vollständig gesendet wurde.

Gibt es eine Möglichkeit, den Browser am Senden des Bodys zu hindern bzw. die Übertragung des Requests nach dem Verarbeiten der Header abzubrechen? Ich hatte gehofft, etwas in die Richtung req.abort() zu finden, aber so etwas scheint es nicht zu geben.


----------



## Murray (14. Sep 2007)

Den Client wird man nicht hindert können, den gesamten Request zu schicken, denn er erwartet den Response ja erst, nachdem er den Request komplett geschickt hat. Und wie außer im Response sollte man dem Client irgendwelche Anweisungen geben können?

Man kann wohl auch nicht umhin, den Request komplett einzulesen, denn über den gleichen Stream kann ja auch der nächste Request kommen (sofern persistente Verbindungen verwendet werden, was in HTTP /1.1 ja Standard ist).

Evtl. könnte man einfach den Stream zumachen, was Client-seitig dann aber als Verbindungsfehler durchschlagen würde. Wenn der Client noch weitere Requests schicken soll, dann verhindert man damit auch die Nutzung einer persistenten Verbindung, was möglicherweise noch mehr Zeit kostet als die Übertragung und Verarbeitung der überflüssigen Daten).


----------



## freez (15. Sep 2007)

Vielleicht gibt es ja auch andere Lösungsmöglichkeiten. Schildere doch einfach mal genauer, was du zu erreichen versuchst.


----------



## nk (17. Sep 2007)

Im Prinzip möchte ich verhindern, dass man Dateien hochladen kann, die über einer bestimmten Größe sind. Das lässt sich zwar leicht nach dem Upload überprüfen, aber dafür muss der Benutzer ja erstmal die Datei hochgeladen haben.

Meine Idee war daher, anhand des Content-Length-Headers zu überprüfen, wie groß die Datei ca. sein wird und dann gegebenenfalls gleich den Download abzubrechen und einen Fehler auszugeben. Damit das irgendeinen Vorteil bringt, müsste ich allerdings erstmal einen Weg finden, den Browser am Upload zu hindern, wenn ich merke, dass die Datei zu groß ist.


----------

