GNU веб-контентин Wget2 жүктөө үчүн утилитанын биринчи туруктуу релизи

Үч жарым жылдык өнүгүүдөн кийин GNU Wget2 долбоорунун биринчи туруктуу релизинин бет ачары болду, анда GNU Wget мазмунун рекурсивдүү жүктөөнү автоматташтыруу үчүн программанын толугу менен кайра иштелип чыккан версиясы иштелип чыкты. GNU Wget2 нөлдөн баштап иштелип чыккан жана кайра жазылган жана желе кардарынын негизги функцияларын тиркемелерде өзүнчө колдонула турган libwget китепканасына жылдыруу менен өзгөчөлөнөт. Утилита GPLv3+, ал эми китепкана LGPLv3+ боюнча лицензияланган.

Бар болгон коддук базаны акырындык менен кайра иштеп чыгуунун ордуна, бардыгын нөлдөн баштап кайра жасоо жана реструктуризациялоо, функционалдуулукту жогорулатуу жана шайкештикти бузган өзгөртүүлөрдү киргизүү идеяларын ишке ашыруу үчүн өзүнчө Wget2 бутагын түзүү чечими кабыл алынды. FTP протоколунун жана WARC форматынын эскирилишин эске албаганда, wget2 көпчүлүк учурларда классикалык wget утилитасын ачык алмаштыруучу катары иштей алат.

Айтылгандай, wget2 жүрүм-турумунда документтештирилген айырмачылыктарга ээ, 30га жакын кошумча варианттарды камсыз кылат жана бир нече ондогон варианттарды колдоону токтотот. Анын ичинде “-ask-password”, “-header”, “-exclude-directories”, “-ftp*”, “-warc*”, “-limit-rate”, “-relative” сыяктуу параметрлерди иштетүү токтоду " жана "--ажыратуу".

Негизги инновацияларга төмөнкүлөр кирет:

  • Функцияны libwget китепканасына жылдыруу.
  • Көп жиптүү архитектурага өтүү.
  • Параллелдүү бир нече байланыштарды түзүү жана бир нече жиптерге жүктөө мүмкүнчүлүгү. Ошондой эле "-chunk-size" опциясын колдонуу менен блокторго бөлүнгөн бир файлды жүктөөнү параллелдештирүүгө болот.
  • HTTP/2 протоколун колдоо.
  • Өзгөртүлгөн маалыматтарды гана жүктөп алуу үчүн If-Modified-Since HTTP башын колдонуңуз.
  • Тышкы өткөрүү жөндөмдүүлүгүн чектегичтерди колдонууга өтүңүз.
  • Accept-Encoding башын, кысылган маалыматтарды өткөрүп берүүнү жана brotli, zstd, lzip, gzip, deflate, lzma жана bzip2 кысуу алгоритмдерин колдоо.
  • TLS 1.3, жокко чыгарылган сертификаттарды текшерүү үчүн OCSP (Онлайн сертификаттын статусу протоколу), HTTPSге кайра багыттоону мажбурлоочу HSTS (HTTP катуу транспорттук коопсуздук) механизми жана сертификатты байлатуу үчүн HPKP (HTTP коомдук ачкычын кадоо) колдоо.
  • TLS үчүн backends катары GnuTLS, WolfSSL жана OpenSSL колдонуу мүмкүнчүлүгү.
  • TCP байланыштарын тез ачуу үчүн колдоо (TCP FastOpen).
  • Камтылган Metalink форматын колдоо.
  • Эл аралык домендик аталыштарды колдоо (IDNA2008).
  • Бир эле учурда бир нече прокси серверлер аркылуу иштөө мүмкүнчүлүгү (бир агым бир прокси аркылуу, экинчиси башкасы аркылуу жүктөлөт).
  • Atom жана RSS форматтарындагы жаңылыктар түрмөктөрү үчүн орнотулган колдоо (мисалы, шилтемелерди сканерлөө жана жүктөп алуу үчүн). RSS/Atom маалыматтарын жергиликтүү файлдан же тармак аркылуу жүктөп алса болот.
  • Сайттын карталарынан URL даректерин алуу үчүн колдоо. CSS жана XML файлдарынан шилтемелерди алуу үчүн талдоочулардын болушу.
  • Конфигурация файлдарына "киргизүү" директивасын колдоо жана бир нече файлдар боюнча орнотууларды бөлүштүрүү (/etc/wget/conf.d/*.conf).
  • Камтылган DNS сурамдарын кэштөө механизми.
  • Документтин коддоосун өзгөртүү аркылуу мазмунду кайра коддоо мүмкүнчүлүгү.
  • Рекурсивдүү жүктөөлөр учурунда "robots.txt" файлын эсепке алуу.
  • Маалыматтарды сактагандан кийин fsync() чалуу менен ишенимдүү жазуу режими.
  • Үзгүлтүккө учураган TLS сессияларын улантуу, ошондой эле кэш жана TLS сессиясынын параметрлерин файлга сактоо мүмкүнчүлүгү.
  • Стандарттык киргизүү агымы аркылуу келген URL'дерди жүктөө үчүн "--input-file-" режими.
  • Бир эле экинчи деңгээлдеги доменде жайгаштырылган ар кандай сайттарды бири-биринен обочолонтуу үчүн (мисалы, “a.github.io” жана “b.github. io”).
  • ICEcast/SHOUTcast агымын жүктөп алууну колдойт.

Source: opennet.ru

Комментарий кошуу