
2026/10/13 4:36
Firefox で大規模ダウンロードの再開可能化を実現する
RSS: https://news.ycombinator.com/rss
要約▶
日本語翻訳:
Firefox 28 およびその以降のバージョンから、デフォルトの
network.http.response.timeout は 300 秒に設定されています。この設定は、大規模なダウンロードを再開することを妨害し、ダウンロードが失敗としてマークされる前に既存の .part ファイルを無視したり、隠蔽されたリトライプロセスを乱したりすることで、それらの一般的な安定性を低下させます。この不安定性は 2005 年以降から知られていた問題ですが、一時的な .part ファイルを手動でシャッフルすることは複雑かつ危険であり推奨されません。信頼性の高い解決策として、about:config で network.http.response.timeout を 0(またははるかに大きな値)に設定することです。これにより、サーバーが再開機能をサポートしている場合、大規模なダウンロードの再開が可能になります。サーバーのサポートがない場合、どの構成変更も成功しません。大規模な転送での最大の安定性のために、ユーザーまたは組織は、現代の Firefox デフォルトよりも堅牢な再開機能を提供する wget -c などのコマンドラインツールへの切り替えを検討すべきです。この解決策は実験的なテストで支えられていますが、Firefox のソースコードによる確認はまだされていません。本文
Firefox 大規模ダウンロードの再取得とタイムアウト設定に関する検証報告
現状の問題点
- Firefox 28 以降(2014 年以降のすべてのバージョン)では、以下の設定値がデフォルトで固定されている。
: 300 秒network.http.response.timeout
- この設定により、以下の不具合が発生しているように見える。
- 大規模なダウンロードの再取得(レジューム)。
- ダウンロード全体の安定性。
推奨される対処方法
about:config を経由して以下の変更を行うことで、問題を改善できる可能性がある。
- 設定内容:
の値を変更network.http.response.timeout- 値:0 または 非常に大きな数値 に設定
- 効果:
- 大規模なダウンロードの再取得が可能になる。
- ダウンロードの安定性が若干向上する。
技術的な背景と仕組み(仮説)
本件の原因について、実験的な検証結果に基づく見解を示す。
- サーバー側の要件: サーバーが「ダウンロードの再取得」をサポートしていなければならない。
- サーバー側で対応していない場合、ブラウザの設定変更では解決しない。
- Firefox の実装特性(推測)
- Firefox の再取得機能は、.part ファイルの内容ではなく、接続のタイムアウト時間に依存しているようだ。
- タイムアウト設定が有効でない限り、既存の
ファイルを無視することがある。.part
- 歴史的文脈:
- Firefox の再取得機能は概ね安定性が低い。
- この問題は2005 年以来知られている問題である。
その他の回避策と注意点
wget を使用する場合
- Firefox 以外のツールとして、以下のコマンドを使用すると有効である。
wget -c -O "$filename" "$url" - 利点:
は全体的に比較的安定している。wget
Firefox の内部動作について
- Firefox はユーザーに「失敗」と判断される前に、背後でリトライを実行している可能性がある。
- 実験結果から、このプロセスは少なくとも部分的に
と関連している。network.http.response.timeout - タイムアウト時間を超過すると、このリトライプロセスが妨げられる可能性が高い。
- 実験結果から、このプロセスは少なくとも部分的に
今後の調査余地
- Firefox のソースコード内の詳細な実装確認は未実施である。
- 原因となる具体的なコード箇所を見つける方法が明確ではないため、調査は留まっている状態。