اولین نسخه پایدار ابزار برای دانلود محتوای وب گنو Wget2

پس از سه سال و نیم توسعه، اولین نسخه پایدار پروژه GNU Wget2 ارائه شده است که یک نسخه کاملاً بازطراحی شده از برنامه را برای خودکارسازی دانلود بازگشتی محتوای GNU Wget توسعه می دهد. گنو Wget2 از ابتدا طراحی و بازنویسی شده است و برای انتقال عملکردهای اساسی یک سرویس گیرنده وب به کتابخانه 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 استفاده کنید.
  • به استفاده از محدود کننده های پهنای باند خارجی مانند قطره تغییر دهید.
  • پشتیبانی از هدر Accept-Encoding، انتقال داده های فشرده، و الگوریتم های فشرده سازی brotli، zstd، lzip، gzip، deflate، lzma و bzip2.
  • پشتیبانی از TLS 1.3، OCSP (پروتکل وضعیت گواهی آنلاین) برای بررسی گواهی های باطل شده، مکانیسم HSTS (HTTP Strict Transport Security) برای تغییر مسیر اجباری به HTTPS و HPKP (Pinning کلید عمومی HTTP) برای اتصال گواهی.
  • امکان استفاده از GnuTLS، WolfSSL و OpenSSL به عنوان Backend برای 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 هایی که از طریق جریان ورودی استاندارد می آیند.
  • بررسی محدوده کوکی در برابر دایرکتوری پسوندهای دامنه عمومی (فهرست پسوند عمومی) برای جداسازی سایت‌های مختلف میزبانی شده در یک دامنه سطح دوم از یکدیگر (به عنوان مثال، "a.github.io" و "b.github. io”).
  • از دانلود جریان ICEcast/SHOUTcast پشتیبانی می کند.

منبع: opennet.ru

اضافه کردن نظر