Contexte et paramètre affecté
Depuis la version 28, publiée en 2014, Firefox fixe network.http.response.timeout à 300 secondes. Ce paramètre, exprimé en secondes, détermine la durée maximale pendant laquelle le client attend une réponse HTTP avant d’interrompre la connexion. L’article signale que ce délai standard empêche la reprise fiable de fichiers volumineux, notamment lorsque le serveur supporte les requêtes Range nécessaires à la reprise.
Mécanisme de reprise et impact du timeout
Les tests décrits montrent que, lorsqu’une interruption survient après le dépassement du timeout, Firefox abandonne le fichier .part déjà présent et redémarre le téléchargement depuis le début. En désactivant le timeout (valeur 0) ou en le portant à une valeur très élevée, le navigateur conserve le flux TCP actif suffisamment longtemps pour que le gestionnaire de téléchargement relance la requête Range et continue le transfert. Le comportement suggère que la logique de reprise repose davantage sur la persistance de la connexion que sur la présence du fichier partiel.
about:config
network.http.response.timeout = 0Cette modification, appliquée via about:config, supprime la contrainte de 5 minutes. Le texte indique que l’effet a été confirmé expérimentalement, même si l’auteur n’a pas vérifié le code source de Firefox. Le problème est récurrent depuis au moins 2005, ce qui montre une faiblesse historique du gestionnaire de téléchargement intégré.
Analyse des limites et solutions alternatives
La solution proposée dépend de la prise en charge du serveur : sans support Range, aucun réglage du client ne peut garantir la reprise. De plus, désactiver le timeout expose le navigateur à des connexions bloquées indéfiniment, ce qui peut entraîner une consommation de ressources réseau non désirée. L’article mentionne également que Firefox effectue des tentatives de nouvelle connexion avant de déclarer l’échec, mais que ces tentatives sont elles‑mêmes limitées par le même paramètre de timeout.
En dehors de Firefox, l’auteur recommande l’utilisation de wget -c -O "$filename" "$url", qui gère la reprise via le même mécanisme de requêtes Range mais avec une stabilité jugée supérieure. Cette alternative montre que le problème n’est pas inhérent au protocole HTTP, mais à l’implémentation du client.
En résumé, la configuration network.http.response.timeout constitue le facteur déterminant de la résilience des gros téléchargements sous Firefox. Modifier ce paramètre améliore la capacité de reprise, mais introduit un compromis entre stabilité du téléchargement et gestion des connexions inactives. Les développeurs de navigateurs pourraient envisager de séparer le timeout de la logique de reprise afin d’éviter ce dilemme.