Langsamer Fortschritt kann einen Proxy-Download innerhalb seines Lese-Timeouts halten
Verstehen Sie, warum gelegentliche Antwortbytes einen Download über einen Proxy innerhalb eines Lese-Inaktivitätslimits halten können, während die Gesamtdauer unannehmbar wird.
Eine Antwort, die gelegentlich ein paar Bytes liefert, kann innerhalb jedes Lese-Inaktivitätslimits bleiben, während sie insgesamt viel zu lange dauert. Ein Lese-Timeout muss nicht die gesamte Übertragungsdauer messen.
Wählen Sie die Richtlinie nach der Arbeitslast. Ein endliches Archiv braucht ein Abschlussbudget; ein Ereignisstrom kann legitim stundenlang weiterlaufen und zeitweise still sein.
Nützlichen Fortschritt messen
Behalten Sie bei einem Dateidownload eine Gesamtfrist bei und erwägen Sie die vom Client unterstützten Niedriggeschwindigkeits- oder Fortschrittssteuerungen. Legen Sie das Intervall und die Menge nützlicher Daten fest. Ein Heartbeat-Byte kann Aktivität zeigen, ohne echten Fortschritt beim Abschluss der Datei zu machen.
Halten Sie den Tunnelaufbau vom Body-Transfer getrennt. Auf den Abschluss von CONNECT zu warten und einen langsamen Ziel-Body zu empfangen, sind verschiedene Phasen mit unterschiedlichen Beweisen.
Verbrauchen oder schließen Sie die Antwort auf jedem Ausstiegspfad. Ein langsamer Stream, der offen bleibt, kann die nächste Anfrage auf Pool-Kapazität warten lassen, was aus einem anderen Grund einen weiteren Timeout erzeugt.
Wenn die beobachtete Dauer die vorgesehene Richtlinie überschreitet, prüfen Sie die genaue Client-Version und die Leseschleife. Ein korrekt funktionierender Inaktivitäts-Timer, das Verhalten einer benutzerdefinierten Schleife und ein Implementierungsfehler erfordern jeweils unterschiedliche Korrekturen.