Երեքուկես տարվա մշակումից հետո ներկայացվել է GNU Wget2 նախագծի առաջին կայուն թողարկումը՝ մշակելով GNU Wget բովանդակության ռեկուրսիվ ներբեռնումն ավտոմատացնելու ծրագրի ամբողջովին վերանախագծված տարբերակը։ GNU Wget2-ը նախագծվել և վերաշարադրվել է զրոյից և նշանավոր է վեբ հաճախորդի հիմնական գործառույթները libwget գրադարան տեղափոխելու համար, որը կարող է առանձին օգտագործվել հավելվածներում: Կոմունալ ծրագիրը լիցենզավորված է GPLv3+-ով, իսկ գրադարանը՝ LGPLv3+:
Գոյություն ունեցող կոդերի բազան աստիճանաբար վերամշակելու փոխարեն, որոշվեց ամեն ինչ վերափոխել զրոյից և ստեղծել առանձին Wget2 մասնաճյուղ՝ վերակառուցման, ֆունկցիոնալությունը բարձրացնելու և համատեղելիությունը խախտող փոփոխություններ իրականացնելու համար գաղափարներ իրականացնելու համար: Բացառությամբ FTP արձանագրության և WARC ձևաչափի հնազանդման, wget2-ը շատ իրավիճակներում կարող է թափանցիկ փոխարինել դասական wget ծրագրին:
Այդպես ասվեց, wget2-ն ունի որոշ փաստագրված տարբերություններ վարքագծի մեջ, տրամադրում է մոտ 30 լրացուցիչ տարբերակ և դադարում է աջակցել մի քանի տասնյակ տարբերակների: Ներառյալ այնպիսի տարբերակների մշակումը, ինչպիսիք են «-հարցել-գաղտնաբառ», «-վերնագիր», «-բացառել-դիրեկտորիաները», «-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 խիստ տրանսպորտի անվտանգություն) մեխանիզմ՝ ստիպելու վերահղումը դեպի 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-ների բեռնման համար:
- Cookie-ի շրջանակի ստուգում հանրային տիրույթի վերջածանցների գրացուցակում (Հանրային վերջածանցների ցուցակ)՝ նույն երկրորդ մակարդակի տիրույթում տեղակայված տարբեր կայքերը միմյանցից մեկուսացնելու համար (օրինակ՝ «a.github.io» և «b.github»: io»):
- Աջակցում է ICEcast/SHOUTcast հոսքի ներբեռնմանը:
Source: opennet.ru