HTTP 헤더 파서

원시 HTTP 요청 또는 응답 헤더를 구조화된 테이블로 파싱합니다. 상태 라인, 헤더, 쿠키, 콘텐츠 타입 정보를 즉시 추출합니다.

자동 타입 감지 쿠키 추출 Content-Type 분석

HTTP 헤더 파서 사용 방법

1

헤더 붙여넣기

브라우저 DevTools(Network 탭)나 다른 출처에서 원시 HTTP 헤더를 복사해 입력 영역에 붙여넣으세요.

2

자동 파싱

헤더는 즉시 구조화된 테이블로 파싱되며, 요청인지 응답인지 자동으로 감지합니다.

3

세부 정보 검토

상태 라인, 개별 헤더, 추출된 쿠키, 콘텐츠 타입 분석을 확인하세요.

HTTP 헤더란?

HTTP 헤더는 HTTP 요청과 응답에서 클라이언트와 서버 사이에 전송되는 키-값 쌍입니다. 콘텐츠 타입, 캐싱 규칙, 인증 토큰, 쿠키 정보 같은 요청이나 응답에 대한 메타데이터를 전달합니다. 헤더를 이해하는 것은 웹 애플리케이션 디버깅, 성능 최적화, 보안 확보에 필수적입니다.

요청 헤더

클라이언트가 서버로 보내는 헤더로 Host, User-Agent, Accept, Authorization, Cookie 등이 있습니다.

응답 헤더

서버가 클라이언트로 되돌려주는 헤더로 Content-Type, Set-Cookie, Cache-Control, X-Request-Id 등이 있습니다.

보안 헤더

Content-Security-Policy, Strict-Transport-Security, X-Frame-Options처럼 보안을 강화하는 헤더.

자주 묻는 질문

요청과 응답 헤더를 모두 파싱하나요?

네. 파서는 첫 줄을 기준으로 입력이 HTTP 요청인지 응답인지 자동 감지해 그에 맞게 파싱합니다. 요청 라인은 HTTP 메서드(GET, POST 등)로 시작하고, 응답 라인은 HTTP/version으로 시작합니다.

Set-Cookie 헤더에서 쿠키를 추출할 수 있나요?

네. Set-Cookie 헤더는 개별 쿠키로 파싱되어 이름, 값, 그리고 HttpOnly, Secure, SameSite, Path, Domain, Max-Age 같은 모든 플래그를 보여줍니다.

어떤 헤더 형식을 받아들이나요?

한 줄에 하나의 헤더가 "Name: Value" 형태로 있는 표준 HTTP/1.1 및 HTTP/2 헤더 형식입니다. 브라우저 개발자 도구에서 직접 헤더를 복사할 수 있습니다.

어떤 HTTP 헤더가 가장 자주 나타나나요?

요청에는 보통 host, user-agent, accept, accept-encoding, cookie가 담기고; 응답은 content-type, content-length, cache-control, set-cookie, date로 답합니다. API 트래픽은 들어갈 때 authorization과 content-type: application/json을 더하고, 나올 때 rate-limit 헤더를 더합니다. RFC 9110(HTTP semantics, 2022)이 이 모두를 정의하는 현대 참조 문서입니다.

요청 헤더와 응답 헤더의 차이는?

요청 헤더(host, authorization, accept-*)는 클라이언트가 원하는 것을 설명하고; 응답 헤더(location, set-cookie, retry-after)는 무엇이 돌아왔는지 설명합니다. 일부 필드는 양방향에 나타나고(cache-control, content-type), 몇몇은 메시지 내용이 아니라 연결 자체를 다룹니다(connection: keep-alive). 이 파서는 각 헤더가 어느 쪽인지 표시합니다.

중복 HTTP 헤더는 어떻게 처리되나요?

RFC 9110에 따르면 반복되는 대부분의 필드는 하나의 쉼표 구분 목록으로 합쳐집니다 - cache-control 두 줄과 no-cache, no-store라고 적힌 한 줄은 동등합니다. Set-Cookie는 문서화된 예외입니다: Expires 날짜에 쉼표가 있어 쉼표 병합이 불가능하므로, 프록시는 각 Set-Cookie를 따로 전달해야 합니다. 이 예외가 프록시 버그의 고전적인 원인입니다.

HTTP/2와 HTTP/3에서 헤더는 무엇이 바뀌었나요?

필드 이름이 소문자가 되었고 HPACK 또는 QPACK으로 압축된 바이너리 프레임으로 이동합니다; 각 요청은 자체 스트림을 열고, Host 같은 연결별 헤더는 :method, :scheme, :path와 함께 :authority 유사 헤더로 대체되었습니다. 의미론적으로 필드는 여전히 RFC 9110을 따릅니다 - 바뀐 것은 전송 형식이지 어휘가 아닙니다.

어떤 헤더 구문이 실제로 잘못된 건가요?

필드 이름과 콜론 사이의 공백(Header : value) - HTTP/1.1 파싱과 HTTP/2 명세 모두 요청 밀반입을 막기 위해 이를 거부합니다. 또한 잘못된 것: 필드 이름 안의 공백이나 비-ASCII 바이트, 값의 제어 문자, 그리고 obs-fold(들여쓰기 줄로 이어지는 헤더)로, RFC 9110은 이를 폐기 표시했습니다 - 한 줄 또는 목록 값으로 바꾸세요.

{-- * External Resources Component(#18 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}