Proxyman v26.0.0에서 드디어 HTTP/2 지원
5분 분량
HTTP/2가 드디어 나왔습니다. macOS용 Proxyman v26.0.0 정식 버전에 HTTP/2 지원이 포함되었습니다. 이제 별도의 베타 앱은 필요하지 않습니다.
앱이 HTTP/2를 사용한다면 이제 Proxyman으로 해당 트래픽을 검사할 수 있습니다. 요청과 응답을 읽고, 사용된 프로토콜을 확인하고, 평소 사용하는 필터와 디버깅 도구를 그대로 쓸 수 있습니다.
이번 릴리스에서는 PRO 사용자를 위한 Split View와 새로운 Safari 스타일 Tab View도 추가되었습니다. 두 기능 모두 복잡한 캡처의 서로 다른 부분을 함께 보기 쉽게 해 줍니다.
HTTP/2가 중요한 이유
앱은 화면 하나를 열 때 여러 요청을 보내는 경우가 많습니다. 프로필을 불러오고, 목록을 가져오고, 이미지를 내려받는 작업이 동시에 일어날 수 있습니다. 이러한 요청들이 연결을 공유하는 방식은 디버깅할 때 보이는 내용에 영향을 줄 수 있습니다.
HTTP/2는 HTTP 메시지가 전송되는 방식을 바꿉니다:
- 여러 요청이 하나의 연결을 동시에 공유할 수 있습니다. 각 요청과 응답은 고유한 스트림을 사용합니다.
- 헤더 압축으로 같은 연결에서 반복 전송되는 헤더 데이터를 줄입니다.
- 연결을 재사용하면 TCP 연결을 추가로 열고 TLS 설정을 반복해야 하는 경우를 줄일 수 있습니다.
- 메서드, URL, 상태 코드, 본문의 의미는 지금까지 알고 있던 그대로입니다.
HTTP/2 표준에서 이러한 변화를 자세히 설명합니다. 오버헤드를 줄일 수는 있지만, 모든 요청을 빠르게 만들어 주지는 않습니다. 서버 처리, 네트워크 상태, 앱 자체도 여전히 중요합니다. HTTP/2도 TCP를 사용하므로, 패킷 손실이 같은 연결을 공유하는 요청에 영향을 줄 수 있습니다.
디버깅 관점에서 이점은 실용적입니다. HTTP/1.1로 캡처한 트래픽에만 의존하지 않고, HTTP/2를 사용하는 트래픽을 직접 검사할 수 있습니다. 문제가 프로토콜 협상이나 여러 요청이 동시에 실행되는 상황에 달려 있을 때 특히 도움이 됩니다.
Settings에서 HTTP/2 켜기
HTTP/2는 기본적으로 꺼져 있습니다. 활성화하려면 다음을 따르세요:
- Mac에 Proxyman v26.0.0 이상을 설치합니다.
- Proxyman → Settings → General을 엽니다.
- Proxy 섹션에서 Use HTTP/2를 켭니다.
- HTTPS를 검사하려면 클라이언트 기기에 Proxyman 인증서를 설치하고 신뢰하도록 설정합니다.
- 검사하려는 앱이나 도메인에 대해 SSL Proxying을 활성화합니다.
- 앱에서 새 요청을 보내거나 페이지를 새로고침합니다.

HTTP/2 캡처 시작하기
이 데모에서는 HTTP/2를 활성화하고 Proxyman에서 새 요청 캡처를 시작하는 방법을 보여 줍니다.
HTTP/2 설정을 바꾸면 기존 연결이 닫혀서 새 연결이 새 설정을 사용할 수 있습니다. 활성 상태인 WebSocket 및 Server-Sent Events 연결도 다시 연결해야 할 수 있습니다.
이미 Proxyman으로 HTTPS를 캡처하고 있다면 인증서와 도메인 설정은 그대로 두어도 됩니다. 처음 캡처하는 경우에는 SSL Proxying 가이드를 따라 하세요. 원격 기기도 트래픽을 Mac의 Proxyman을 거치도록 라우팅해야 합니다.
검사할 수 있는 항목
캡처된 요청을 선택하면 해당 요청과 응답에서 확인할 수 있는 세부 정보를 볼 수 있습니다:
- 요청 메서드, URL, 쿼리 파라미터, 헤더.
- 쿠키와 JSON, 폼 데이터, 바이너리 콘텐츠 같은 요청 본문.
- 응답 상태, 헤더, 본문.
- 클라이언트나 서버가 본문 뒤에 보내는 트레일러 헤더.
- 요청 타이밍과 기록된 HTTP 프로토콜 정보.
- 가능한 경우 서버가 협상한 프로토콜 같은 연결 세부 정보.
HTTP/2 연결을 공유하는 요청은 요청 목록에 각각 별도의 항목으로 표시됩니다. 각 항목을 선택해 내용을 검사할 수 있으며, 내부의 바이너리 프레임을 직접 읽을 필요는 없습니다.
트레일러는 응답 본문 뒤에 최종 정보를 보내는 API에서 유용합니다. 예를 들어 gRPC 응답은 트레일러에 grpc-status와 grpc-message를 담을 수 있습니다. HTTP 200 응답만으로는 해당 RPC가 성공했는지 알 수 없습니다. 이 정보를 캡처한다고 해서 모든 바이너리 본문이 자동으로 읽을 수 있는 텍스트로 바뀌는 것은 아닙니다.
요청이 실제로 사용한 프로토콜 확인하기
HTTP/2를 켜면 Proxyman이 HTTP/2를 사용할 수 있게 됩니다. 모든 연결이 HTTP/2를 사용하도록 강제하지는 않습니다.
고려해야 할 연결은 두 가지입니다:
- 앱이나 브라우저가 Proxyman에 연결합니다.
- Proxyman이 업스트림 서버에 연결합니다.
두 연결은 서로 다른 HTTP 버전을 사용할 수 있습니다. 클라이언트가 HTTP/2를 지원하고 협상해야 합니다. 해당 연결이 HTTP/2를 사용하려면 업스트림 서버도 HTTP/2를 지원해야 합니다. Proxyman은 HTTP/1.1로의 폴백을 허용합니다.
새 요청을 보낸 뒤에는 다음을 확인하세요:
- 요청 세부 정보에서 HTTP 버전을 확인합니다.
- Request 패널에서 Connection Log를 열어 기록되어 있다면 업스트림 프로토콜을 확인합니다.
- 서버가 수락한 프로토콜을 확인합니다.
h2는 HTTP/2를 의미합니다. - 협상 과정에서
h2를 제안했다고 해서 서버가 이를 선택했다는 뜻은 아니라는 점을 기억하세요.
이 예시에서 Proxyman은 h2와 http/1.1을 제안하고, 서버는 h2를 수락합니다.

이전에 저장한 캡처에는 업스트림 프로토콜 정보가 없을 수 있습니다. 정보가 없다고 해서 연결이 HTTP/1.1을 사용했다는 뜻은 아닙니다. Connection Log 가이드에서 기록된 단계를 읽는 방법을 설명합니다.
Split View와 탭으로 트래픽 비교하기
앱에서 프로필은 정상적으로 불러오지만 활동 목록을 불러오지 못한다고 가정해 봅시다. 문제를 재현하는 동안 두 엔드포인트를 모두 보이도록 유지하세요:
- 사이드바에서 앱이나 도메인을 우클릭하고 Open as Split View를 선택합니다.
- 첫 번째 창에서 프로필 엔드포인트로 필터링합니다.
- 두 번째 창에서 활동 엔드포인트로 필터링합니다.
- 각 창에서 요청을 하나씩 선택하고 상태, 헤더, 본문을 비교합니다.
각 창은 자체 필터와 선택 상태를 유지합니다. 두 창 모두 같은 캡처를 사용하므로 새 요청은 어느 보기에서든 계속 확인할 수 있습니다.
다른 조사를 하려면 Open as New Tab을 선택하거나 ⌘T를 누르세요. 필터를 다시 설정하지 않고도 탭 사이를 전환할 수 있으며, 탭을 드래그해 원하는 순서로 배치할 수 있습니다. Split View와 Tab View는 Proxyman PRO가 필요합니다.
여전히 HTTP/1.1이 보인다면
- Use HTTP/2가 켜져 있는지 확인한 뒤 새 요청을 보내세요.
- 클라이언트와 서버가 HTTP/2를 지원하는지 확인하세요. 폴백이 일어나는 것은 정상일 수 있습니다.
- HTTPS 내용이 계속 암호화된 상태로 보인다면 인증서 신뢰 설정과 SSL Proxying을 확인하세요.
- 앱이나 기기가 트래픽을 Proxyman을 거쳐 보내는지 확인하세요.
- 앱이 연결을 거부한다면 SSL 피닝을 포함해 앱의 인증서 요구 사항을 확인하세요.
더 읽어보기
릴리스를 다운로드하고 HTTP/2를 켠 뒤, 이해하고 싶은 요청을 캡처해 보세요.

