Το πρόβλημα με τα χρονικά όρια απόκρισης

Ο Firefox, από την έκδοση 28 και μετά, επιβάλλει ένα όριο 300 δευτερολέπτων στην παράμετρο network.http.response.timeout. Αν και αυτό το όριο αποσκοπεί στην προστασία του χρήστη από «κρεμασμένες» συνδέσεις, στην πράξη δημιουργεί ένα σημείο συμφόρησης (bottleneck) για λήψεις μεγάλων αρχείων που απαιτούν χρόνο για την ολοκλήρωσή τους ή παρουσιάζουν προσωρινή καθυστέρηση στη μεταφορά δεδομένων.

Η λύση μέσω του about:config

Η τροποποίηση της παραμέτρου network.http.response.timeout σε 0 μέσω του about:config φαίνεται να επιλύει το ζήτημα της αδυναμίας συνέχισης (resuming) μιας λήψης. Παρατηρείται ότι ο browser, υπό τις προεπιλεγμένες ρυθμίσεις, συχνά αγνοεί τα υπάρχοντα αρχεία .part και αποτυγχάνει να επανασυνδεθεί σωστά, πιθανότατα επειδή το timeout διακόπτει τη διαδικασία πριν ο μηχανισμός επανάληψης (retry mechanism) προλάβει να ολοκληρώσει τη διαδικασία.

Περιορισμοί και εναλλακτικές

Παρά τη βελτίωση που επιφέρει η παραπάνω ρύθμιση, η διαχείριση λήψεων στον Firefox παραμένει ένα γνωστό ζήτημα σταθερότητας εδώ και χρόνια. Είναι σημαντικό να τονιστεί ότι:

  1. Ο διακομιστής πρέπει να υποστηρίζει το HTTP Range request για να είναι δυνατή η συνέχιση της λήψης.
  2. Σε περιπτώσεις όπου η αξιοπιστία είναι κρίσιμη, η χρήση εργαλείων γραμμής εντολών (CLI) όπως το wget -c παραμένει η πιο στιβαρή αρχιτεκτονική προσέγγιση, καθώς προσφέρει καλύτερο έλεγχο και διαχείριση των σφαλμάτων δικτύου χωρίς να εξαρτάται από το runtime ενός browser.