HTTP 헤더 분석기
HTTP 헤더는 요청과 응답에 대한 메타데이터를 전달합니다. 이 도구는 요청/상태 줄, 헤더, 본문 콘텐츠를 포함한 완전한 HTTP 메시지를 파싱합니다. 보안 헤더(HSTS, CSP), 인증(Basic, Bearer), 쿠키, CORS 구성, 캐싱 지시어를 분석합니다. 본문 콘텐츠는 Content-Type(JSON, HTML, XML)에 따라 자동으로 서식 지정되고 구문 강조됩니다.
사양
주요 사용 사례
- 브라우저 DevTools 네트워크 탭에서 복사한 API 요청 디버깅
- curl -i 또는 curl -v 출력의 헤더와 본문 분석
- 규정 준수를 위한 보안 헤더 감사 (OWASP 권장사항)
- CORS 프리플라이트 및 교차 출처 문제 해결
- 인증 헤더 및 쿠키 구성 검사
- CDN 및 브라우저 캐싱의 캐싱 동작 확인
기능
- 전체 HTTP 요청 파싱 (GET /path HTTP/1.1)
- 상태 코드와 사유 구문이 포함된 HTTP 응답 파싱
- 본문 콘텐츠 서식 지정 및 구문 강조 (JSON, HTML, XML, CSS)
- Authorization 헤더 디코딩 (Basic 인증 자격 증명, Bearer 토큰)
- 보안 헤더 분석 (HSTS, CSP, X-Frame-Options, X-Content-Type-Options)
- Set-Cookie 속성 파싱 (Secure, HttpOnly, SameSite, 만료)
- 헤더에서 쿠키 추출 및 목록
- CORS 헤더 표시 (Access-Control-Allow-Origin 등)
- Cache-Control 지시어 설명 (max-age, no-cache, private)
예제
JSON 본문이 있는 API 응답
사용해 보기 →curl -i 출력에서 복사할 수 있는 헤더와 JSON 본문이 있는 완전한 HTTP 응답.
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Cache-Control: max-age=3600, public
X-Frame-Options: DENY
Strict-Transport-Security: max-age=31536000; includeSubDomains
{
"status": "success",
"data": {
"id": 12345,
"name": "Example User"
}
}인증이 포함된 HTTP 요청
사용해 보기 →Bearer 토큰 인증과 쿠키가 있는 요청.
GET /api/users HTTP/1.1
Host: api.example.com
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
Accept: application/json
Cookie: session=abc123; theme=dark팁
- 응답 헤더를 출력에 포함하려면 "curl -i URL"을 사용하세요.
- 브라우저 DevTools에서 요청을 마우스 오른쪽 버튼으로 클릭하고 "cURL로 복사"하여 전체 요청을 가져오세요.
- HSTS(Strict-Transport-Security)는 브라우저에 도메인에 HTTPS만 사용하도록 지시합니다.
- CSP(Content-Security-Policy)는 페이지가 로드할 수 있는 리소스를 제어합니다.
- SameSite 쿠키 속성은 CSRF 공격을 방지하는 데 도움됩니다.
이해하기 HTTP 헤더 분석기
HTTP 헤더는 모든 HTTP 요청과 응답의 일부로 클라이언트와 서버 사이에 전송되는 키-값 쌍입니다. 콘텐츠 유형, 캐싱 지시어, 인증 자격 증명, 보안 정책 등 메시지에 대한 메타데이터를 전달합니다. 헤더는 요청 또는 상태 줄 다음에, 선택적 본문 앞에 나타나며, 빈 줄로 본문과 구분됩니다.
요청 헤더는 클라이언트와 원하는 응답에 대한 컨텍스트를 제공합니다. Host는 대상 서버를 식별합니다. Accept와 Content-Type은 미디어 형식을 협상합니다. Authorization은 자격 증명(Basic, Bearer, API 키)을 전달합니다. Cookie는 저장된 세션 데이터를 보냅니다. User-Agent는 클라이언트 소프트웨어를 식별합니다.
응답 헤더는 클라이언트가 콘텐츠를 처리하는 방법을 제어합니다. Cache-Control과 ETag는 캐싱 동작을 관리합니다. Set-Cookie는 클라이언트 측 상태를 설정합니다. Content-Security-Policy는 XSS를 완화하기 위해 리소스 로딩을 제한합니다. Strict-Transport-Security는 HTTPS를 강제합니다. CORS 헤더(Access-Control-Allow-Origin 및 관련 헤더)는 교차 출처 리소스 공유를 제어하며, 이는 웹 API에서 가장 흔하게 잘못 구성되는 부분 중 하나입니다.
헤더를 이해하는 것은 웹 애플리케이션 디버깅에 필수적입니다. API가 예기치 않은 결과를 반환할 때, 헤더가 종종 원인을 밝혀줍니다: 누락된 Content-Type, 만료된 인증 토큰, 오래된 데이터를 제공하는 캐싱 지시어, 요청을 차단하는 CORS 정책.
Cache-Control 지시어는 가장 오해받는 헤더 중 하나입니다. no-cache 지시어는 "캐시하지 마라"는 뜻이 아니라, 캐시가 저장된 응답을 사용하기 전에 원본 서버에서 재검증해야 한다는 뜻입니다. 응답은 여전히 캐시될 수 있습니다. no-store 지시어가 실제로 캐싱을 완전히 방지하며, 민감한 데이터에 사용해야 합니다. 조건부 요청의 이점을 받는 자주 변경되는 콘텐츠의 경우, no-cache를 ETag 또는 Last-Modified와 결합하는 것이 적절한 전략입니다.
CORS 오류는 다른 출처로의 브라우저 요청에 Access-Control-Allow-Origin 응답 헤더가 누락된 경우 발생합니다. 서버는 이 헤더에 요청 출처 또는 공개 API의 경우 *를 포함해야 합니다. 자격 증명(쿠키 또는 Authorization 헤더)이 관련된 경우 와일드카드는 허용되지 않으며, 헤더는 정확한 출처를 지정해야 합니다. 프리플라이트 OPTIONS 요청은 추가로 Access-Control-Allow-Methods와 Access-Control-Allow-Headers가 필요합니다. Bearer 토큰 인증은 Authorization: Bearer <token> 형식을 사용하며, 토큰은 일반적으로 OAuth 2.0 플로우의 JWT 또는 불투명 액세스 토큰입니다. 쿠키와 달리 Bearer 토큰은 자동으로 전송되지 않으며, 클라이언트가 각 요청에 명시적으로 헤더를 첨부해야 합니다.
모든 웹사이트는 최소한의 보안 헤더 세트를 설정해야 합니다. Strict-Transport-Security(HSTS)는 항상 HTTPS가 사용되도록 보장합니다. Content-Security-Policy는 리소스 로딩을 제한하여 XSS를 완화합니다. X-Content-Type-Options: nosniff는 MIME 유형 스니핑을 방지합니다. X-Frame-Options는 클릭재킹으로부터 보호하고, Referrer-Policy는 Referer 헤더에 전송되는 정보를 제어합니다. API는 추가로 어떤 출처가 요청할 수 있는지 제어하기 위해 적절한 CORS 헤더를 구성해야 합니다.