用於下載 GNU Web 內容的實用程式 Wget2 的第一個穩定版本

經過三年半的開發,GNU Wget2 專案的第一個穩定版本已經發布,開發了一個完全重新設計的程式版本,用於自動遞歸下載 GNU Wget 內容。 GNU Wget2 是從頭開始設計和重寫的,其著名之處在於將 Web 用戶端的基本功能轉移到 libwget 庫中,該庫可以在應用程式中單獨使用。 該實用程式根據 GPLv3+ 獲得許可,而該程式庫根據 LGPLv3+ 獲得許可。

我們決定從頭開始重做一切,並建立一個單獨的 Wget2 分支,以實現重組、增加功能和進行破壞相容性的變更的想法,而不是逐步重新設計現有的程式碼庫。 除了棄用 FTP 協定和 WARC 格式之外,wget2 在大多數情況下可以充當經典 wget 實用程式的透明替代品。

話雖如此,wget2 在行為方面存在一些已記錄的差異,提供了大約 30 個附加選項,並停止支援數十個選項。 包括對“-ask-password”、“-header”、“-exclude-directories”、“-ftp*”、“-warc*”、“-limit-rate”、“-relative”等選項的處理停止“和”--unlink」。

主要創新包括:

  • 將功能移至 libwget 庫。
  • 過渡到多執行緒架構。
  • 能夠並行建立多個連線並下載到多個執行緒。 也可以使用“-chunk-size”選項並行下載一個分為區塊的檔案。
  • HTTP/2 協定支援。
  • 使用 If-Modified-Since HTTP 標頭僅下載修改後的資料。
  • 改用外部頻寬限制器,例如trickle。
  • 支援 Accept-Encoding 標頭、壓縮資料傳輸以及 brotli、zstd、lzip、gzip、deflate、lzma 和 bzip2 壓縮演算法。
  • 支援 TLS 1.3、用於檢查吊銷憑證的 OCSP(線上憑證狀態協定)、用於強制重定向到 HTTPS 的 HSTS(HTTP 嚴格傳輸安全性)機制和用於憑證綁定的 HPKP(HTTP 公鑰固定)。
  • 能夠使用 GnuTLS、WolfSSL 和 OpenSSL 作為 TLS 的後端。
  • 支援快速開啟 TCP 連線(TCP FastOpen)。
  • 內建 Metalink 格式支援。
  • 支持國際化域名 (IDNA2008)。
  • 同時透過多個代理伺服器工作的能力(一個流將透過一個代理加載,第二個流將透過另一個代理加載)。
  • 內建支援 Atom 和 RSS 格式的新聞源(例如,用於掃描和下載連結)。 RSS/Atom 資料可以從本機檔案或透過網路下載。
  • 支援從網站地圖中提取 URL。 可以使用解析器從 CSS 和 XML 檔案中提取連結。
  • 支援設定檔中的「include」指令以及跨多個檔案(/etc/wget/conf.d/*.conf)分佈設定。
  • 內建DNS查詢快取機制。
  • 透過更改文檔編碼來重新編碼內容的可能性。
  • 在遞歸下載期間考慮「robots.txt」檔案。
  • 儲存資料後呼叫 fsync() 的可靠寫入模式。
  • 能夠恢復中斷的 TLS 會話,以及快取 TLS 會話參數並將其儲存到檔案中。
  • 「--input-file-」模式用於載入來自標準輸入流的 URL。
  • 根據公共域後綴目錄(公共後綴列表)檢查 Cookie 的範圍,以隔離同一二級域中託管的不同站點(例如,“a.github.io”和“b.github.io”)。 io”) 。
  • 支援下載ICEcast/SHOUTcast串流媒體。

來源: opennet.ru

添加評論