Wie angeben HTTP-Request-Timeout-Parameter auf Java-Servlet-Container
-
06-07-2019 - |
Frage
Ich versuche zu verstehen, wo ich eine Zeitüberschreitung der Anforderung für alle Anforderungen konfigurieren kann, dass ein Servlet von mir ankommen (oder all meinen Servlets)? Ist das, wie ich glaube, eine Container-Eigenschaft? Auch, wie wirkt sich dies auf verschiedenen Browsern? Haben sie alle Behälter Diktat auf den Parameter erfüllen? Oder vielleicht ist die Anforderung Timeout-Zeit nicht einmal etwas, was ich kontrollieren kann und jeder Browser entscheidet über das auf seinem eigenen? (Nur um klar zu sein Ich rede nicht über Session-Timeout)
Andere Tipps
Auch wenn Sie nicht Client Timeout steuern können, können Sie Server sehr ungeduldig :) Zum Beispiel machen, auf Tomcat, können Sie in Ihrem Stecker tut dies,
<Connector port="8080"
...
connectionTimeout ="5000"
disableUploadTimeout="false" />
Das macht Server nur 5 Sekunden warten und die Verbindung schließen. Browser eine Verbindung geschlossen Fehler. Sie können es die gleiche wie Timeout in Client behandeln.
Natürlich funktioniert dies nur, wenn das Timeout durch den Server verursacht wird, nicht Konnektivitätsprobleme zwischen Browser und Server.
Sie können das Client-Timeout von dem Server steuern. Allerdings können Sie in der Lage sein, Daten an den Client nun alle zurückschicken und dann, während die lange laufenden Betrieb beschäftigt ist. Dadurch wird den Client von Zeitüberschreitung zu verhindern und kann verwendet werden, um Fortschritte usw., um den Benutzer anzuzeigen, aus der Antwort erhalten Senden Daten an dem Outputstream oder Writer und riefen bündig Teildaten an den Client zu senden.