Првото стабилно издание на алатката за преземање GNU веб-содржини Wget2

По три и пол години развој, претставено е првото стабилно издание на проектот GNU Wget2, развивајќи целосно редизајнирана верзија на програмата за автоматизирање на рекурзивното преземање на GNU Wget содржина. GNU Wget2 е дизајниран и препишан од нула и е забележлив за преместување на основната функционалност на веб-клиентот во библиотеката libwget, која може да се користи одделно во апликациите. Услужната програма е лиценцирана под GPLv3+, а библиотеката е лиценцирана под LGPLv3+.

Наместо постепено да се преработува постоечката база на кодови, беше одлучено да се повтори сè од нула и да се воспостави посебна гранка Wget2 за да се имплементираат идеи за реструктуирање, зголемување на функционалноста и правење промени што ја нарушуваат компатибилноста. Со исклучок на застарувањето на протоколот FTP и форматот WARC, wget2 може да дејствува како транспарентна замена за класичната алатка wget во повеќето ситуации.

Како што е кажано, wget2 има некои документирани разлики во однесувањето, обезбедува околу 30 дополнителни опции и престанува да поддржува неколку десетици опции. Вклучувајќи обработка на такви опции како „-прашај-лозинка“, „-заглавие“, „-исклучи-директориуми“, „-ftp*“, „-warc*“, „-limit-rate“, „-relative“ е запре" и "--прекини се".

Главните иновации вклучуваат:

  • Преместување на функционалноста во библиотеката libwget.
  • Транзиција кон архитектура со повеќе нишки.
  • Можност за воспоставување на повеќе врски паралелно и преземање во повеќе нишки. Исто така, можно е да се паралелизира преземањето на една датотека поделена на блокови користејќи ја опцијата „-chunk-size“.
  • Поддршка за протокол HTTP/2.
  • Користете го заглавието If-Modified-Since HTTP за да ги преземете само изменетите податоци.
  • Префрлете се на користење на надворешни ограничувачи на пропусниот опсег, како што е trickle.
  • Поддршка за заглавието Accept-Encoding, компримиран пренос на податоци и алгоритми за компресија brotli, zstd, lzip, gzip, deflate, lzma и bzip2.
  • Поддршка за TLS 1.3, OCSP (Online Certificate Status Protocol) за проверка на отповиканите сертификати, HSTS (HTTP Strict Transport Security) механизам за принудно пренасочување на HTTPS и HPKP (HTTP јавен клуч за прикачување) за врзување сертификат.
  • Способност да се користат GnuTLS, WolfSSL и OpenSSL како задни за TLS.
  • Поддршка за брзо отворање на TCP конекции (TCP FastOpen).
  • Вградена поддршка за формат Metalink.
  • Поддршка за интернационализирани имиња на домени (IDNA2008).
  • Способност за истовремено работење преку неколку прокси-сервери (еден поток ќе се вчита преку еден прокси, а вториот преку друг).
  • Вградена поддршка за доводи на вести во формати Atom и RSS (на пример, за скенирање и преземање врски). Податоците RSS/Atom може да се преземат од локална датотека или преку мрежа.
  • Поддршка за извлекување URL од мапи на сајтови. Достапност на парсери за извлекување врски од CSS и XML датотеки.
  • Поддршка за директивата „вклучи“ во конфигурациските датотеки и дистрибуција на поставките низ неколку датотеки (/etc/wget/conf.d/*.conf).
  • Вграден механизам за кеширање на барања за DNS.
  • Можност за прекодирање на содржината со промена на кодирањето на документот.
  • Сметководство за датотеката „robots.txt“ при рекурзивни преземања.
  • Сигурен режим за пишување со повик fsync() по зачувување на податоците.
  • Можност за продолжување на прекинатите TLS сесии, како и кеширање и зачувување на параметрите на TLS сесијата во датотека.
  • Режим „--input-file-“ за вчитување URL-адреси што доаѓаат преку стандардниот влезен тек.
  • Проверка на опсегот на колачето во однос на директориумот со наставки од јавен домен (Список на јавни суфикси) за да се изолираат едни од други различни локации хостирани во истиот домен од второ ниво (на пример, „a.github.io“ и „b.github. io“).
  • Поддржува преземање ICEcast/SHOUTcast стриминг.

Извор: opennet.ru

Додадете коментар