Rilis stabil pertama dari utilitas untuk mengunduh konten web GNU Wget2

Setelah tiga setengah tahun pengembangan, rilis stabil pertama dari proyek GNU Wget2 telah disajikan, mengembangkan versi program yang didesain ulang sepenuhnya untuk mengotomatiskan pengunduhan konten GNU Wget secara rekursif. GNU Wget2 dirancang dan ditulis ulang dari awal dan terkenal karena memindahkan fungsionalitas dasar klien web ke perpustakaan libwget, yang dapat digunakan secara terpisah dalam aplikasi. Utilitas ini dilisensikan di bawah GPLv3+, dan perpustakaannya dilisensikan di bawah LGPLv3+.

Alih-alih mengerjakan ulang basis kode yang ada secara bertahap, diputuskan untuk mengulang semuanya dari awal dan mendirikan cabang Wget2 terpisah untuk mengimplementasikan ide-ide restrukturisasi, meningkatkan fungsionalitas, dan membuat perubahan yang merusak kompatibilitas. Dengan pengecualian penghentian protokol FTP dan format WARC, wget2 dapat bertindak sebagai pengganti transparan untuk utilitas wget klasik di sebagian besar situasi.

Meskipun demikian, wget2 memiliki beberapa perbedaan perilaku yang terdokumentasi, menyediakan sekitar 30 opsi tambahan, dan berhenti mendukung beberapa lusin opsi. Termasuk pemrosesan opsi seperti “-ask-password”, “-header”, “-exclude-directories”, “-ftp*”, “-warc*”, “-limit-rate”, “-relative” telah dilakukan. berhenti " dan "--batalkan tautan".

Inovasi utama meliputi:

  • Memindahkan fungsionalitas ke perpustakaan libwget.
  • Transisi ke arsitektur multi-thread.
  • Kemampuan untuk membuat banyak koneksi secara paralel dan mengunduh ke banyak thread. Dimungkinkan juga untuk memparalelkan pengunduhan satu file yang dibagi menjadi beberapa blok menggunakan opsi “-chunk-size”.
  • Dukungan protokol HTTP/2.
  • Gunakan header HTTP If-Modified- Since untuk mengunduh data yang diubah saja.
  • Beralih menggunakan pembatas bandwidth eksternal seperti trickle.
  • Dukungan untuk header Accept-Encoding, transfer data terkompresi, dan algoritma kompresi brotli, zstd, lzip, gzip, deflate, lzma, dan bzip2.
  • Dukungan untuk TLS 1.3, OCSP (Online Certificate Status Protocol) untuk memeriksa sertifikat yang dicabut, mekanisme HSTS (HTTP Strict Transport Security) untuk memaksa pengalihan ke HTTPS dan HPKP (HTTP Public Key Pinning) untuk pengikatan sertifikat.
  • Kemampuan untuk menggunakan GnuTLS, WolfSSL, dan OpenSSL sebagai backend untuk TLS.
  • Dukungan untuk pembukaan cepat koneksi TCP (TCP FastOpen).
  • Dukungan format Melink bawaan.
  • Dukungan untuk nama domain internasional (IDNA2008).
  • Kemampuan untuk bekerja secara bersamaan melalui beberapa server proxy (satu aliran akan dimuat melalui satu proxy, dan yang kedua melalui proxy lainnya).
  • Dukungan bawaan untuk umpan berita dalam format Atom dan RSS (misalnya, untuk memindai dan mengunduh tautan). Data RSS/Atom dapat diunduh dari file lokal atau melalui jaringan.
  • Dukungan untuk mengekstraksi URL dari Peta Situs. Ketersediaan parser untuk mengekstrak tautan dari file CSS dan XML.
  • Dukungan untuk arahan 'sertakan' dalam file konfigurasi dan distribusi pengaturan di beberapa file (/etc/wget/conf.d/*.conf).
  • Mekanisme cache permintaan DNS bawaan.
  • Kemungkinan pengodean ulang konten dengan mengubah pengkodean dokumen.
  • Menghitung file "robots.txt" selama pengunduhan rekursif.
  • Mode tulis yang andal dengan panggilan fsync() setelah menyimpan data.
  • Kemampuan untuk melanjutkan sesi TLS yang terputus, serta menyimpan cache dan menyimpan parameter sesi TLS ke file.
  • Mode "--input-file-" untuk memuat URL yang datang melalui aliran input standar.
  • Memeriksa cakupan Cookie terhadap direktori sufiks domain publik (Daftar Akhiran Publik) untuk mengisolasi satu sama lain situs berbeda yang dihosting di domain tingkat kedua yang sama (misalnya, “a.github.io” dan “b.github. io”).
  • Mendukung pengunduhan streaming ICEcast/SHOUTcast.

Sumber: opennet.ru

Tambah komentar