Nakon tri i pol godine razvoja, predstavljeno je prvo stabilno izdanje GNU Wget2 projekta koji razvija potpuno redizajniranu verziju programa za automatiziranje rekurzivnog preuzimanja GNU Wget sadržaja. GNU Wget2 dizajniran je i ponovno napisan od nule i poznat je po premještanju osnovne funkcionalnosti web klijenta u biblioteku libwget, koja se može koristiti zasebno u aplikacijama. Uslužni program je licenciran pod GPLv3+, a biblioteka je licencirana pod LGPLv3+.
Umjesto postupne prerade postojeće baze koda, odlučeno je da se sve ponovi od nule i uspostavi zaseban ogranak Wget2 za implementaciju ideja za restrukturiranje, povećanje funkcionalnosti i uvođenje promjena koje prekidaju kompatibilnost. S iznimkom zastarjevanja FTP protokola i WARC formata, wget2 može djelovati kao transparentna zamjena za klasični uslužni program wget u većini situacija.
Uz to, wget2 ima neke dokumentirane razlike u ponašanju, pruža oko 30 dodatnih opcija i prestaje podržavati nekoliko desetaka opcija. Uključena je obrada opcija kao što su "-ask-password", "-header", "-exclude-directories", "-ftp*", "-warc*", "-limit-rate", "-relative" zaustavljeno " i "--prekini vezu".
Ključne inovacije uključuju:
- Premještanje funkcionalnosti u biblioteku libwget.
- Prijelaz na višenitnu arhitekturu.
- Sposobnost uspostavljanja više veza paralelno i preuzimanja na više niti. Također je moguće paralelizirati preuzimanje jedne datoteke podijeljene u blokove pomoću opcije “-chunk-size”.
- Podrška za HTTP/2 protokol.
- Upotrijebite HTTP zaglavlje If-Modified-Since za preuzimanje samo izmijenjenih podataka.
- Prebacite se na korištenje vanjskih limitatora propusnosti kao što je trickle.
- Podrška za zaglavlje Accept-Encoding, komprimirani prijenos podataka i algoritme kompresije brotli, zstd, lzip, gzip, deflate, lzma i bzip2.
- Podrška za TLS 1.3, OCSP (Online Certificate Status Protocol) za provjeru opozvanih certifikata, HSTS (HTTP Strict Transport Security) mehanizam za prisilno preusmjeravanje na HTTPS i HPKP (HTTP Public Key Pinning) za vezanje certifikata.
- Mogućnost korištenja GnuTLS, WolfSSL i OpenSSL kao pozadina za TLS.
- Podrška za brzo otvaranje TCP veza (TCP FastOpen).
- Ugrađena podrška za Metalink format.
- Podrška za internacionalizirana imena domena (IDNA2008).
- Mogućnost istovremenog rada kroz nekoliko proxy poslužitelja (jedan tok će se učitati kroz jedan proxy, a drugi kroz drugi).
- Ugrađena podrška za izvore vijesti u Atom i RSS formatima (na primjer, za skeniranje i preuzimanje poveznica). RSS/Atom podaci mogu se preuzeti iz lokalne datoteke ili preko mreže.
- Podrška za izdvajanje URL-ova iz Sitemapova. Dostupnost parsera za izdvajanje veza iz CSS i XML datoteka.
- Podrška za direktivu 'include' u konfiguracijskim datotekama i distribucija postavki u nekoliko datoteka (/etc/wget/conf.d/*.conf).
- Ugrađeni mehanizam predmemoriranja DNS upita.
- Mogućnost prekodiranja sadržaja promjenom kodiranja dokumenta.
- Obračunavanje datoteke "robots.txt" tijekom rekurzivnih preuzimanja.
- Pouzdan način pisanja s pozivom fsync() nakon spremanja podataka.
- Mogućnost nastavka prekinutih TLS sesija, kao i predmemorija i spremanje parametara TLS sesije u datoteku.
- Način "--input-file-" za učitavanje URL-ova koji dolaze kroz standardni ulazni tok.
- Provjera opsega kolačića u odnosu na direktorij sufiksa javne domene (Public Suffix List) kako bi se jedna od druge izolirala različita mjesta koja se nalaze na istoj domeni druge razine (na primjer, "a.github.io" i "b.github. io”).
- Podržava preuzimanje ICEcast/SHOUTcast streaminga.
Izvor: opennet.ru