Keluaran stabil pertama utiliti untuk memuat turun kandungan web GNU Wget2

Selepas tiga setengah tahun pembangunan, keluaran stabil pertama projek GNU Wget2 telah dibentangkan, membangunkan versi reka bentuk semula sepenuhnya program untuk mengautomasikan muat turun rekursif kandungan GNU Wget. GNU Wget2 telah direka bentuk dan ditulis semula dari awal dan terkenal kerana mengalihkan fungsi asas klien web ke dalam perpustakaan libwget, yang boleh digunakan secara berasingan dalam aplikasi. Utiliti dilesenkan di bawah GPLv3+ dan perpustakaan dilesenkan di bawah LGPLv3+.

Daripada mengolah semula pangkalan kod sedia ada secara beransur-ansur, ia telah memutuskan untuk membuat semula segala-galanya dari awal dan menubuhkan cawangan Wget2 yang berasingan untuk melaksanakan idea untuk penstrukturan semula, meningkatkan fungsi dan membuat perubahan yang memecahkan keserasian. Dengan pengecualian penamatan protokol FTP dan format WARC, wget2 boleh bertindak sebagai pengganti telus untuk utiliti wget klasik dalam kebanyakan situasi.

Walaupun begitu, wget2 mempunyai beberapa perbezaan yang didokumenkan dalam tingkah laku, menyediakan kira-kira 30 pilihan tambahan, dan berhenti menyokong beberapa dozen pilihan. Termasuk pemprosesan pilihan seperti β€œ-ask-password”, β€œ-header”, β€œ-exclude-directories”, β€œ-ftp*”, β€œ-warc*”, β€œ-limit-rate”, β€œ-relative” telah berhenti " dan "--nyahpaut".

Inovasi utama termasuk:

  • Memindahkan fungsi ke perpustakaan libwget.
  • Peralihan kepada seni bina berbilang benang.
  • Keupayaan untuk mewujudkan berbilang sambungan secara selari dan memuat turun ke berbilang benang. Ia juga mungkin untuk menyelaraskan muat turun satu fail yang dibahagikan kepada blok menggunakan pilihan "-saiz-chunk".
  • Sokongan protokol HTTP/2.
  • Gunakan pengepala HTTP If-Modified-Since untuk memuat turun data yang diubah suai sahaja.
  • Beralih kepada menggunakan pengehad lebar jalur luaran seperti trickle.
  • Sokongan untuk pengepala Pengekodan Terima, pemindahan data termampat dan algoritma mampatan brotli, zstd, lzip, gzip, deflate, lzma dan bzip2.
  • Sokongan untuk TLS 1.3, OCSP (Protokol Status Sijil Dalam Talian) untuk menyemak sijil yang dibatalkan, mekanisme HSTS (HTTP Strict Transport Security) untuk memaksa ubah hala ke HTTPS dan HPKP (HTTP Public Key Pinning) untuk pengikatan sijil.
  • Keupayaan untuk menggunakan GnuTLS, WolfSSL dan OpenSSL sebagai hujung belakang untuk TLS.
  • Sokongan untuk pembukaan pantas sambungan TCP (TCP FastOpen).
  • Sokongan format Metalink terbina dalam.
  • Sokongan untuk nama domain antarabangsa (IDNA2008).
  • Keupayaan untuk bekerja secara serentak melalui beberapa pelayan proksi (satu aliran akan dimuatkan melalui satu proksi, dan yang kedua melalui yang lain).
  • Sokongan terbina dalam untuk suapan berita dalam format Atom dan RSS (contohnya, untuk mengimbas dan memuat turun pautan). Data RSS/Atom boleh dimuat turun daripada fail tempatan atau melalui rangkaian.
  • Sokongan untuk mengekstrak URL daripada Peta Laman. Ketersediaan penghurai untuk mengekstrak pautan daripada fail CSS dan XML.
  • Sokongan untuk arahan 'termasuk' dalam fail konfigurasi dan pengedaran tetapan merentas beberapa fail (/etc/wget/conf.d/*.conf).
  • Mekanisme caching pertanyaan DNS terbina dalam.
  • Kemungkinan pengekodan semula kandungan dengan menukar pengekodan dokumen.
  • Mengambil kira fail "robots.txt" semasa muat turun rekursif.
  • Mod tulis yang boleh dipercayai dengan panggilan fsync() selepas menyimpan data.
  • Keupayaan untuk menyambung semula sesi TLS yang terganggu, serta cache dan menyimpan parameter sesi TLS ke fail.
  • Mod "--input-file-" untuk memuatkan URL yang datang melalui aliran input standard.
  • Menyemak skop Kuki terhadap direktori akhiran domain awam (Senarai Akhiran Awam) untuk mengasingkan antara satu sama lain tapak berbeza yang dihoskan dalam domain peringkat kedua yang sama (contohnya, β€œa.github.io” dan β€œb.github. io”).
  • Menyokong muat turun penstriman ICEcast/SHOUTcast.

Sumber: opennet.ru

Tambah komen