HTTP 헤더 분석기
붙여 넣은 HTTP 헤더를 표와 JSON으로 분석하고 반복 값을 보존합니다.
HTTP 요청이나 응답의 원문 헤더 텍스트를 읽어 시작 줄과 헤더 목록으로 나눕니다. 헤더 이름은 소문자로 바꾸고, 같은 이름이 여러 번 나오면 값을 배열로 모읍니다.
사용 순서
- 개발자 도구나 curl -i 출력에서 헤더 줄들을 복사합니다.
- 입력란에 붙여 넣습니다. 첫 줄이 HTTP/1.1 200 OK 같은 시작 줄이면 따로 분리됩니다.
- 오른쪽 표에서 헤더 이름별 값 목록을 확인합니다.
- 아래 JSON 결과를 복사해 테스트 코드나 문서에 사용합니다.
예시
HTTP/1.1 200 OK 줄과 X-Trace 헤더 두 개(first:part, second)를 입력하면 startLine에 "HTTP/1.1 200 OK"가 나오고, x-trace 값은 ["first:part","second"] 배열이 됩니다.
한계
줄 앞에 공백이 붙는 헤더 이어쓰기(folding)는 지원하지 않아 오류가 납니다. 빈 줄 뒤에 헤더가 더 나오거나 CR만 있는 줄바꿈이 섞여 있어도 오류로 처리합니다. 헤더 이름은 소문자로 바뀌므로 원본 대소문자가 필요하면 따로 확인해야 합니다. 입력은 2MB까지 처리합니다.
보안 주의
Set-Cookie, Authorization, X-Api-Key 같은 헤더에는 세션이나 인증 정보가 그대로 들어 있습니다. 이 도구는 브라우저 안에서만 처리하지만, 결과를 공유하기 전에 해당 헤더 값을 가려야 합니다.
배경 지식
HTTP 헤더는 본문 앞에 붙는 이름과 값의 쌍으로, 캐시 정책, 콘텐츠 형식, 인증 정보, 쿠키 설정 등을 전달합니다. 헤더 이름은 대소문자를 구분하지 않는다고 규격에 정해져 있어서 파서는 보통 소문자로 맞춰 비교합니다. 같은 이름이 여러 번 올 수 있으며, 이때는 값을 콤마로 합치거나 여러 줄로 보내는 방법이 모두 허용됩니다.
Set-Cookie처럼 같은 이름이 반복되는 헤더를 콤마로 합치면 값 안의 콤마 때문에 의미가 깨질 수 있습니다. 그래서 이 도구는 값을 합치지 않고 배열로 보관합니다. 디버깅할 때는 응답이 캐시 헤더를 두 번 보냈는지, Location이 여러 개인지 배열에서 바로 확인할 수 있습니다. 헤더 텍스트를 직접 파싱하는 코드를 만든다면 이름의 대소문자 규칙과 중복 처리를 같은 방식으로 맞춰야 합니다.
자주 묻는 질문
HTTP/2 응답 헤더도 이 도구로 읽을 수 있나요?
HTTP/2는 헤더를 이진 형식으로 주고받으므로 개발자 도구에서 복사한 텍스트를 붙여 넣는 방식이 됩니다. 이때 :status처럼 콜론으로 시작하는 가상 헤더가 보이는데, 이 도구는 그런 줄을 일반 헤더 이름으로 인정하지 않아 오류가 날 수 있습니다.
Content-Length와 실제 본문 길이가 다르면 이 도구에서 알 수 있나요?
알 수 없습니다. 이 도구는 헤더 텍스트만 분석하고 본문을 받지 않으므로 길이를 비교하지 않습니다. 길이 불일치는 응답 본문의 바이트 수를 직접 세거나 서버 로그와 대조해야 확인할 수 있습니다.
헤더 값 앞뒤 공백은 어떻게 처리되나요?
값의 앞뒤 공백은 제거되고, 이름과 콜론 사이의 공백도 값에 들어가지 않습니다. 값 중간에 있는 콜론이나 공백은 그대로 유지되므로 X-Trace: first:part는 first:part로 나옵니다.