xh — 모던 HTTP 클라이언트
Linux / 모던 CLI 도구 / xh.html
💬 "xh 명령어"
xh는 curl을 대체하는 친절한 HTTP 명령줄 클라이언트입니다. 복잡한 인자 없이 xh example.com처럼 쓰면 JSON·헤더·상태 코드를 읽기 좋은 형태로 바로 보여줍니다.
Rust로 만들어졌으며, HTTPie 명령 스타일을 따르면서 더 빠르고 가볍습니다. 리다이렉트 자동 추적, JSON·폼 전송, 인증, 다운로드를 간결한 옵션으로 처리합니다.
- 개념: 터미널에서 HTTP 요청을 보내고 응답을 보기 좋게 출력하는 클라이언트입니다.
- 주요 기능: JSON/폼 전송, 인증, 헤더 지정, 리다이렉트 추적, 파일 다운로드를 지원합니다.
- 장점: curl처럼 인자를 외울 필요 없이 짧은 명령으로 API를 호출하고 결과를 확인합니다.
- 활용: REST API 점검, 웹 서비스 응답 확인, 인증 테스트에 사용합니다.
기본 사용법
xh는 기본이 GET이며, 인자로 키=값을 주면 자동으로 JSON으로 보냅니다.
1. 기본 요청
URL만 주면 GET 요청 결과를 예쁘게 보여줍니다.
xh example.com
xh example.com/users/1 # JSON 응답 확인
2. 데이터 보내기
키=값을 주면 JSON POST가 됩니다.
xh POST example.com/users name=John age:=30 email:=null
xh POST example.com login form==true username=admin password=secret
3. 인증·헤더·다운로드
토큰·헤더·파일 처리를 간단히 합니다.
xh example.com Authorization:"Bearer TOKEN"
xh --download example.com/file.zip
xh -v example.com # 헤더까지 자세히
설치 및 다운로드
xh는 cargo·패키지 매니저·바이너리로 설치합니다. xh는 http 별칭도 제공합니다.
| 환경 | 명령 |
|---|---|
| cargo | cargo install xh |
| Ubuntu/Debian (패키지 있으면) | sudo apt install xh |
| macOS (Homebrew) | brew install xh |
| 릴리스 바이너리 | github.com/ducaale/xh/releases |
설치 확인은 xh --version. http·https 별칭을 쓰려면 설치 시 안내되는 심볼릭 링크를 만듭니다.
자주 쓰는 옵션
| 명령·키 | 설명 |
|---|---|
POST/PUT/PATCH | HTTP 메서드를 지정합니다 |
키:=값 | 숫자·배열·null 등 JSON 타입으로 보냅니다 |
키==값 | 쿼리스트링( URL 파라미터)으로 보냅니다 |
--download | 응답을 파일로 저장합니다 |
-v | 요청·응답 헤더까지 자세히 표시합니다 |
필수 명령어 조합 3가지
xh example.com/api/health— API 응답을 바로 확인xh POST api/login username=admin— 폼/JSON 로그인 요청xh --download example.com/file.zip— 파일 다운로드
💬 "실제 서버에서 xh를 사용하는 예시"
로컬 API를 점검하는 상황을 순서대로 정리했습니다.
1단계 · 서비스 응답 확인
서버가 살아있는지 확인합니다.
xh localhost:8080/health
2단계 · 인증 요청
토큰을 넣어 인증 엔드포인트를 호출합니다.
xh localhost:8080/api/me Authorization:"Bearer TOKEN"
3단계 · 결과 저장
응답을 파일로 남깁니다.
xh localhost:8080/api/list --download resp.json
실무에서는 이렇게 씁니다
1. 헬스체크
상황 — 배포 후 서비스 상태를 확인합니다.
xh localhost:8080/health
결과 — 상태 코드와 JSON 본문이 한눈에 보여 즉시 판단됩니다.
포인트 — curl 인자를 외우지 않고 빠르게 점검합니다.
2. 파라미터 테스트
상황 — 쿼리 조건을 바꿔가며 확인합니다.
xh 'example.com/api/items?limit==5&sort==desc'
결과 — 키==값으로 쿼리를 간단히 붙여 보냅니다.
포인트 — 여러 조합을 빠르게 시도해 API 동작을 확인합니다.
주의할 점
- URL에
?·&가 포함되면 따옴표로 감싸면 안전합니다. - 기본은 슬래시 없는 URL도 허용하지만, 정확한 경로를 쓰는 습관이 좋습니다.
- 인증 토큰을 쓸 때 셸 히스토리에 남을 수 있으니 임시 파일·환경변수 활용을 고려합니다.