소개
GNU Wget2는 GNU Wget의 후속 버전으로, GNU 프로젝트가 개발한 파일 및 웹사이트 재귀 다운로드 도구입니다. 기본 기능을 별도의 libwget 라이브러리로 분리하여 다중 스레드 기반으로 동작하며, HTTP/2 지원과 병렬 연결을 통해 기존 Wget 1.x보다 빠른 다운로드를 제공합니다. 단일 파일뿐 아니라 사이트 전체 미러링, RSS/Atom/Sitemap 피드 스터링까지 폭넓게 사용할 수 있도록 설계된 오픈소스 명령줄 유틸리티입니다.
상세정보
프로토콜 및 전송
- HTTP/1.1 및 HTTP/2.0 프로토콜 지원
- brotli, zstandard(zstd), lzip, bzip2, gzip/deflate 등 다양한 Content-Encoding 및 Accept-Encoding 압축 해제
- HTTPS는 libgnutls로 처리하며, 선택적으로 WolfSSL 사용 가능
- TCP Fast Open, TLS Session Resumption(영구 세션 캐시 포함), TLS False Start(GnuTLS 3.5.0 이상) 지원
- OCSP stapling 및 OCSP 서버 Querying 폴백(실험적, GnuTLS 3.3.11 이상 필요)
- IPv4 및 IPv6 지원, DNS 조회 캐시
- HTTP Public Key Pinning(HPKP, RFC7469) 영구 데이터베이스 지원
- HSTS(RFC6797) 지원, libhsts 연동으로 HSTS 프리로드 목록 사용 가능
- IDN(국제화 도메인) 및 IDNA2008/IDNA2003 컴파일 선택 지원
재귀 다운로드 및 미러링
- 웹사이트의 재귀 다운로드 및 미러링(호스트 확장 여부 선택 가능)
- robots.txt의 Robot Exclusion Standard 및
<META name="robots">존중 - 링크 변환(-k/–convert-links, -K/–backup-converted) 지원
- RFC 6266 호환 Content-Disposition 처리
- 내장 CSS, HTML, XML 파서를 통한 재귀 다운로드
- 단일 파일의 다중 스레드 다운로드(–chunk-size)
- 병렬 다운로드 스레드 수 조절 가능
- 임의 개수의 프록시를 통한 병렬 다운로드 지원
- keep-alive 연결 지원
피드 및 입력
- 로컬 및 원격 RSS 2.0 피드 스터링(–force-rss)
- 로컬 및 원격 Atom 1.0 피드 스터링(–force-atom)
- 로컬 Sitemap XML 파일에서 URL 스터링(–force-sitemap)
- robots.txt에 명시된 사이트맵(Sitemap XML, gzip Sitemap XML, 일반 텍스트, 사이트맵 인덱스 파일 포함) 스터링
- 입력 파일의 문자 인코딩 지정(–input-encoding)
- ICEcast/SHOUTcast 스트림 수신 지원(예제 examples/getstream.c 참고)
쿠키, 프록시, 설정
- Mozilla Public Suffix List 기반의 libpsl을 활용한 쿠키 도메인 검사
- 세션 및 비세션 쿠키 처리, 슈퍼쿠키 검출, –cookie-suffixes 옵션 지원
- 프록시 지원
- 와일드카드를 포함한 설정 파일 include 지시문
- gettext 기반 다국어 메시지 지원
메탈링크 및 서명
- Metalink/HTTP(RFC 6249) 지원
- Metalink Download Description Format(RFC 5854, .meta4) 지원
- Metalink 3 지원 및 libgnutls를 통한 메탈링크 체크섬 검증
- libgpgme 기반 자동 서명 검증(선택 사항)
Windows에서 설치
Windows 패키지 관리 도인 winget을 사용해 다음 명령으로 설치할 수 있습니다.
winget install --id GNU.Wget2 --exact
winget 패키지 정보는 portable 형식의 x64 빌드로 제공됩니다.
소스에서 빌드하기
tarball을 내려받아 빌드하는 기본 절차는 다음과 같습니다.
wget https://gnuwget.gitlab.io/wget2/wget2-latest.tar.gztar xf wget2-latest.tar.gzcd wget2-*./configuremakemake checksudo make install
Git 저장소에서 빌드할 때는 git clone https://gitlab.com/gnuwget/wget2.git으로 내려받고 ./bootstrap을 실행한 뒤 ./configure와 make를 수행합니다. 테스트는 make check, 시스템 설치는 sudo make install로 진행합니다. GNU/Linux에서 Windows용 정적 wget2.exe를 빌드하려면 contrib 디렉터리의 Dockerfile.win32.static을, Linux/amd64용 정적 바이너리를 빌드하려면 Dockerfile.musl.static.amd64를 사용할 수 있습니다.
기본 사용 예시
- 단일 파일 다운로드:
wget2 [URL] - 웹사이트 전체 미러링:
wget2 --mirror [URL] - 링크를 로컬 경로로 변환하여 저장:
wget2 -k [URL] - 로컬 RSS 파일에서 URL 추출해 다운로드:
wget2 --force-rss -i [파일명]
Wget2는 기존 Wget 1.x와 어떤 차이가 있나요?
Wget2는 Wget 1.x를 처음부터 다시 설계한 후속 버전으로, 핵심 기능을 libwget 라이브러리로 분리하고 다중 스레드로 동작합니다. HTTP/2 지원, HTTP 압축, 병렬 연결, If-Modified-Since 헤더 활용 등을 통해 같은 조건에서 더 빠른 다운로드를 목표로 합니다.
어떤 프로토콜과 콘텐츠 인코딩을 지원하나요?
HTTP/1.1 및 HTTP/2.0을 지원하고, HTTPS는 libgnutls(선택적으로 WolfSSL)로 처리합니다. 콘텐츠 압축 해제로는 brotli, zstandard, lzip, bzip2, gzip/deflate를 지원합니다.
어떤 플랫폼에서 빌드하고 실행할 수 있나요?
README 기준으로 Linux, macOS, OpenBSD, FreeBSD, Solaris, Windows에서 빌드 및 실행이 검증되어 있습니다. Windows용 패키지는 winget을 통해 x64 portable 형태로 배포됩니다.
라이선스는 어떻게 되나요?
GNU Wget2는 GPLv3 이상 조건으로 배포되며, 함께 제공되는 libwget은 LGPLv3 이상 조건으로 배포됩니다. GPL 전문이 저장소 최상위 디렉터리의 LICENSE 파일에 포함되어 있습니다.
시스템 요구사항
Array


