HTTP 메시지 파서

요청, 응답, curl 상세 출력을 포함한 HTTP/1.x 및 HTTP/2 메시지를 파싱하고 검사합니다. 구조화된 형식으로 헤더, 상태 코드, 본문을 봅니다. JSON, HTML, XML 콘텐츠의 자동 본문 유형 감지를 지원합니다.

사양

주요 사용 사례

  • 브라우저 네트워크 탭의 HTTP 요청 디버깅
  • API 응답 분석
  • 문제 해결을 위한 curl -v 출력 파싱
  • 웹훅 페이로드 검사
  • 보안 분석을 위한 HTTP 헤더 검토

기능

  • HTTP/1.x 및 HTTP/2 요청과 응답 파싱
  • curl -v 상세 출력 형식 파싱
  • 색상으로 구분된 카테고리의 상태 코드 표시 (2xx, 3xx, 4xx, 5xx)
  • curl 출력의 요청 및 응답 헤더 분리
  • 자동 본문 콘텐츠 유형 감지 (JSON, HTML, XML)
  • 동적 본문 도구 렌더링 (본문 콘텐츠용 JSONTool, HTMLTool 등 지연 로딩)
  • 본문 섹션 확장/축소
  • 헤더 또는 본문을 클립보드로 복사

예제

HTTP GET 요청

사용해 보기 →

헤더가 포함된 간단한 GET 요청

GET /api/users HTTP/1.1
Host: example.com
Accept: application/json
Authorization: Bearer token123

JSON 본문이 포함된 200 OK 응답

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 27

{"name":"John","age":30}

curl -v 출력

사용해 보기 →

요청과 응답이 포함된 상세 curl 출력

* Trying 93.184.216.34:443...
* Connected to example.com
> GET /api HTTP/1.1
> Host: example.com
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Type: application/json
<
{"status":"ok"}

  • curl -v 출력을 직접 붙여넣으세요. 요청과 응답 헤더가 별도로 파싱됩니다.
  • "JSON/HTML/XML로 디코딩"을 클릭하여 본문을 적절한 디코더로 연계하세요.
  • 상태 코드는 색상으로 구분됩니다: 초록(2xx), 파랑(3xx), 노랑(4xx), 빨강(5xx).

이해하기 HTTP 메시지 파서

HTTP 메시지는 Hypertext Transfer Protocol에서 통신의 기본 단위입니다. 웹 클라이언트와 서버 사이의 모든 상호작용은 요청 메시지와 응답 메시지로 구성됩니다. 그 구조를 이해하는 것은 API 디버깅, 네트워크 트래픽 분석, 웹 서비스 구축에 필수적입니다.

HTTP 요청은 메서드(GET, POST, PUT, DELETE), 대상 경로, 프로토콜 버전을 포함하는 요청 줄로 시작합니다. 그 뒤에 헤더 필드(키-값 쌍), 빈 줄, 선택적 본문이 옵니다. 메서드는 의도된 동작을 나타냅니다: GET은 데이터를 조회하고, POST는 데이터를 제출하며, PUT은 리소스를 교체하고, DELETE는 제거하며, PATCH는 부분적으로 업데이트합니다.

HTTP 응답은 프로토콜 버전, 세 자리 상태 코드, 사유 구문을 포함하는 상태 줄로 시작합니다. 상태 코드는 클래스별로 그룹화됩니다: 2xx는 성공(200 OK, 201 Created), 3xx는 리다이렉션(301 Moved, 304 Not Modified), 4xx는 클라이언트 오류(400 Bad Request, 401 Unauthorized, 404 Not Found), 5xx는 서버 오류(500 Internal Server Error, 502 Bad Gateway).

curl 명령줄 도구의 -v(상세) 플래그는 요청과 응답을 > (보낸 데이터)와 < (받은 데이터)를 사용하는 독특한 형식으로 출력합니다. 이 출력 형식은 개발자가 원시 HTTP 메시지를 접하는 가장 일반적인 방법 중 하나이므로, curl -v 파싱은 필수적인 디버깅 역량입니다.

HTTP/1.1은 텍스트 기반이며 한 번에 하나의 TCP 연결당 하나의 요청을 보냅니다(파이프라이닝이 존재하지만 지원이 부족). HTTP/2는 단일 연결에서 여러 요청을 다중화하고, 서버 푸시를 지원하며, HPACK으로 헤더를 압축하는 바이너리 프로토콜입니다. HTTP/2는 최신 웹사이트의 지연 시간을 크게 줄입니다. 의미론(메서드, 상태 코드, 헤더)은 두 버전에서 동일하며, 와이어 형식만 다릅니다.

curl -v 출력에서 >로 시작하는 줄은 서버로 보낸 데이터(요청)이고, <로 시작하는 줄은 서버에서 받은 데이터(응답)이며, *로 시작하는 줄은 연결 세부 정보와 TLS 협상에 대한 curl 정보 메시지입니다. > 또는 <만 있는 빈 줄은 헤더와 본문을 구분합니다. 이 도구는 세 섹션을 모두 자동으로 파싱합니다.

상태 코드는 잘 정의된 숫자 체계를 따릅니다: 1xx 코드는 정보 제공(100 Continue), 2xx는 성공(200 OK, 201 Created, 204 No Content), 3xx는 리다이렉션(301 Permanent, 302 Found, 304 Not Modified), 4xx는 클라이언트 오류(400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 429 Too Many Requests), 5xx는 서버 오류(500 Internal Error, 502 Bad Gateway, 503 Service Unavailable).

← 전체 도구로 돌아가기