Grote downloads hervatbaar maken in Firefox

Het instellen van network.http.response.timeout op 0 (of een zeer hoog getal) in about:config zorgt ervoor dat grote downloads zowel hervatbaar als iets stabieler worden. Hoewel ik niet precies begrijp waarom dit werkt, ondersteunen experimentele tests deze conclusie.

Belangrijke kanttekeningen

Houd er rekening mee dat dit ervan uitgaat dat de server hervatbare downloads ondersteunt; als dat niet het geval is, zullen instellingen in Firefox of een andere browser niet helpen. Het probleem dat hiermee wordt opgelost, is echter dat Firefox niet in staat is om een hervatbare download te hervatten na een fout.

Het lijkt er experimenteel op dat hervatbare downloads in Firefox vertrouwen op connection timeouts in plaats van op de .part-bestanden die worden gedownload. Zonder deze specifieke optie negeert Firefox vaak een bestaand .part-bestand, al is onduidelijk waarom dit gebeurt.

Stabiliteit en alternatieven

Hervatbare downloads in Firefox lijken over het algemeen vrij onstabiel. Dit is in diverse vormen een bekend probleem sinds 2005. Ik heb ontdekt dat er een handmatige methode bestaat waarbij men .part-bestanden kan verschuiven om Firefox te dwingen downloads te hervatten, maar ik pas deze methode niet toe.

Als alternatief voor Firefox is het gebruik van wget een goede oplossing. Het commando wget -c -O "$filename" "$url" werkt goed, en wget is over het algemeen zeer stabiel.

Verdere observaties

Ik vermoed daarnaast dat Firefox enkele verborgen pogingen tot opnieuw downloaden (retries) uitvoert voordat de download als mislukt wordt beschouwd. Uit experimenteel onderzoek lijkt dit ten minste gedeeltelijk gerelateerd te zijn aan network.http.response.timeout, waarbij het overschrijden van de timeout dit proces verstoort.

Ik heb niet geprobeerd dit te bevestigen aan de hand van de broncode van Firefox, omdat ik niet weet waar ik precies moet zoeken.