소개
xh는 HTTPie의 뛰어난 설계를 기반으로 성능 향상에 초점을 맞춰 구현된, 친절하고 빠른 HTTP 요청 전송을 위한 오픈소스 커맨드라인 도구입니다. Rust로 개발되어 단일 바이너리로 제공되며, API 테스트 및 자동화 작업에 적합합니다.
상세정보
다양한 HTTP 메서드 지원
GET, POST, PUT, DELETE 등 주요 HTTP 메서드를 지원하며, 요청 바디 및 헤더를 직관적인 키-값 쌍으로 설정할 수 있습니다.
출력 처리 및 포맷팅
JSON 출력과 구문 하이라이트를 기본으로 지원하며, 응답 출력 형식과 색상 스타일을 제어하는 옵션이 제공됩니다. --print 옵션을 통해 응답 헤더, 바디, 메타데이터를 선택적으로 출력할 수 있습니다.
GraphQL 지원
별도의 플러그인 없이 GraphQL 쿼리를 직접 전송하고 테스트할 수 있습니다.
보안 및 프록시 설정
네이티브 TLS를 사용하여 보안 연결을 설정하고, various 인증 메커니즘(Basic, Bearer, Digest)과 프록시 사용을 지원합니다. SSL 검증 우회 및 사용자 지정 CA 번들 지정이 가능합니다.
세션 관리 및 리다이렉트
세션 파일을 생성하여 요청/응답 교환 상태를 유지할 수 있으며, 리다이렉트 추적과 제어 옵션을 제공합니다.
설치 및 기본 사용법
xh는 다양한 패키지 매니저를 통해 설치할 수 있습니다.
- Windows (winget):
winget install --id ducaale.xh --exact - Windows (Scoop):
scoop install xh - Windows (Chocolatey):
choco install xh - Linux 및 macOS (Homebrew):
brew install xh - 범용 (Cargo):
cargo install xh --locked(Rust 1.85 이상 필요)
설치 후 터미널에서 다음과 같은 명령으로 기본 요청을 보낼 수 있습니다.
# GET 요청 전송
xh httpbin.org/json
# POST 요청 및 JSON 바디 전송
xh httpbin.org/post name=ahmed age:=24
# 특정 헤더 포함 GET 요청
xh get httpbin.org/json x-api-key:12345활용 예시
- REST API 테스트: 개발자는
xh를 사용하여 로컬 또는 원격 REST API 엔드포인트에 빠르게 요청을 보내고 응답을 확인할 수 있습니다. - GraphQL 쿼리 디버깅: GraphQL 엔드포인트에 쿼리를 직접 전송하여 데이터 구조와 응답을 검증할 수 있습니다.
- 스크립트 자동화: 셸 스크립트나 CI/CD 파이프라인에서 간단히 HTTP 요청을 보내 서비스 상태를 모니터링하거나 외부 서비스와 상호작용하는 데 사용할 수 있습니다.
지원 환경 및 요구사항
xh는 Windows, Linux, macOS를 지원하며, GitHub 릴리스 페이지에서 사전 빌드된 바이너리를 다운로드할 수 있습니다. 소스에서 직접 빌드하는 경우 Rust 개발 환경과 Rust 1.85 이상의 컴파일러가 필요합니다.
버전 및 업데이트
현재 배포 버전은 0.26.2이며, 최신 릴리스 정보는 GitHub 저장소의 릴리스 페이지에서 확인할 수 있습니다.
제한 사항 및 확인사항
- 일부 Linux 배포판(Debian 13, Ubuntu 25.04 이상) 및 macOS 패키지 매니저에서 제공되는 빌드는
native-tls만 사용하며, 특정 TLS 백엔드가 필요한 환경에서는 별도 설정이 필요할 수 있습니다. - Windows 사전 빌드 바이너리는 패키지 저장소에 반영되기까지 약간의 지연이 있을 수 있습니다.
- HTTPie의 모든 기능을 완전히 구현하지는 않았으며, 플러그인 시스템은 지원하지 않습니다.
시스템 요구사항
소스에서 빌드하는 경우 Rust 1.85 이상이 필요합니다.


