HTTP 헤더 조회표
요청·응답·캐시·CORS·보안 헤더와 주의사항
헤더 71개
example.com:8080
대상 호스트와 포트, HTTP/1.1부터 필수, 가상 호스트와 SNI 라우팅에 사용
application/json; charset=utf-8
본문의 미디어 타입과 문자셋, 한글이 깨질 때 대개 여기 문제
주의: charset 불일치 시 브라우저가 잘못된 인코딩으로 해석, JSON은 application/json만 쓰는 편이 안전
1024
본문 바이트 수(문자 수 아님), 한글은 보통 3바이트
gzip
본문 압축 방식(gzip, br, zstd), Content-Length 이후 바이트를 압축
주의: 둘 다 있을 때 Content-Length는 압축 전 크기를 가리킴
zh-Hans
본문의 자연어, 다국어 사이트에서 Accept-Language와 협상
attachment; filename="report.csv"
브라우저가 표시할지 다운로드할지 결정하고 파일명을 지정
주의: 비ASCII 파일명은 filename*=UTF-8을 써야 깨지지 않음
chunked
청크 전송, chunked 사용 시 Content-Length와 함께 쓸 수 없음
주의: Content-Length와 함께 보내면 게이트웨이가 요청 밀수로 판단
keep-alive
연결 관리, close는 응답 후 종료, upgrade는 프로토콜 전환
timeout=5, max=1000
연결 재사용 유지 파라미터, 유휴 시간 초과와 최대 요청 수
1.1 varnish
거쳐온 프록시와 게이트웨이 기록, 경로와 캐시 계층 추적에 사용
Sun, 20 Sep 2026 03:30:00 GMT
메시지 생성 시각, 반드시 GMT 형식
text/html,application/json;q=0.9
클라이언트가 받을 수 있는 미디어 타입, q 값으로 우선순위 지정
주의: 백엔드가 406을 반환하면 이 헤더와 응답 Content-Type 비교
gzip, br
클라이언트가 지원하는 압축 방식, 서버가 압축 여부 결정
zh-CN,zh;q=0.9,en;q=0.8
선호 자연어, 다국어 사이트 언어 선택 근거
주의: 이 헤더만으로 언어를 바꾸면 크롤러가 한 URL의 여러 언어를 수집, Vary 필요
utf-8
클라이언트가 받는 문자셋, 최신 브라우저는 대개 utf-8만
Mozilla/5.0 (Windows NT 10.0; Win64; x64)
클라이언트 식별자, 호환 처리와 위험 제어에 사용
주의: UA로 기능 판단 금지, 최신 브라우저는 위장하며 태블릿과 폰 구분 불가
https://example.com/list
유입 페이지 주소, 핫링크 방지와 유입 통계에 사용
주의: HTTPS에서 HTTP로 이동 시 브라우저가 제거해 핫링크 규칙이 오작동
bytes=0-1023
리소스 일부 바이트만 요청, 이어받기와 동영상 탐색에 사용
주의: 서버는 206을 반환해야 하며 200이면 범위 미지원
100-continue
큰 본문 전송 전 서버 수락 여부 확인, 헛된 업로드 방지
주의: Expect를 전달하지 않는 게이트웨이는 타임아웃, 대용량 업로드 시 헤더 제거
websocket
프로토콜 업그레이드 요청, WebSocket 핸드셰이크의 핵심
주의: 리버스 프록시가 Upgrade와 Connection: upgrade를 함께 전달해야 핸드셰이크 성공
for=203.0.113.1;proto=https
표준화된 프록시 경로 정보, X-Forwarded-*의 공식 대체
203.0.113.1, 10.0.0.5
클라이언트 IP 체인, 홉마다 추가되며 가장 왼쪽이 클라이언트
주의: 클라이언트가 위조 가능, 자체 프록시 홉이나 사용자 헤더만 신뢰
https
원본 요청 프로토콜, 프록시 뒤 앱이 HTTPS 판단 근거
203.0.113.1
Nginx에서 흔히 쓰는 단일 값 클라이언트 IP 헤더
nginx/1.24.0
서버 소프트웨어 표시, 버전 노출은 공격자에게 유리
주의: 프로덕션에서는 버전 숨김 권장(server_tokens off)
Basic realm="api"
인증 방식을 알려줌, 401과 함께 반환
주의: 403만 반환하면 클라이언트가 인증 창을 띄울지 판단하지 못함
Basic realm="proxy"
프록시 인증 요구, 407과 함께 사용
https://example.com/new
리다이렉트 대상, 3xx 상태 코드와 함께 사용
주의: 하위 경로 배포에서 상대 경로는 어긋남, 다른 호스트는 절대 URL 필요
120
클라이언트가 언제 재시도할지 알려줌(초 또는 HTTP 날짜)
주의: 429와 503에 함께 보내야 클라이언트가 즉시 재시도하지 않음
GET, POST, HEAD
리소스가 허용하는 메서드, 405와 함께 사용
bytes
범위 요청 지원 선언, 이어받기의 전제
bytes 0-1023/4096
부분 콘텐츠 범위와 전체 길이, 206과 함께 사용
<https://example.com/next>; rel="next"
관련 리소스 선언, 페이지네이션과 프리로드에 사용
Express
프레임워크 지문, 정보 노출을 줄이려면 비활성 권장
*
어느 출처가 Performance 타이밍 데이터를 읽을 수 있는지 지정
h3=":443"; ma=86400
대체 서비스 엔드포인트 광고, HTTP/3 발견 경로
public, max-age=3600
캐시 정책 핵심 지시자, no-store는 저장 금지, no-cache는 재검증
주의: no-cache는 매번 재검증, 저장 자체를 막으려면 no-store
Sun, 20 Sep 2026 04:30:00 GMT
HTTP/1.0 만료 시각, Cache-Control보다 우선순위 낮음
no-cache
HTTP/1.0 레거시 헤더, no-cache와 동일 의미
"686897696a7c876b7e"
리소스 버전 지문, 조건부 요청에서 변경 여부 판단
주의: 서버마다 ETag가 다르면 캐시가 계속 무효화, 비활성 또는 통일 필요
Sat, 19 Sep 2026 12:00:00 GMT
리소스 최종 수정 시각, 초 단위 정밀도
"686897696a7c876b7e"
이전 ETag를 보내 변경 여부 확인, 변경 없으면 304
주의: 재검증이 안 되면 브라우저가 보낸 값과 응답 ETag를 비교
Sat, 19 Sep 2026 12:00:00 GMT
수정 시각 기반 조건부 요청, 정밀도는 낮지만 호환성 좋음
"686897696a7c876b7e"
버전이 일치해야 쓰기 수행, 낙관적 잠금 구현 방식
주의: 없으면 갱신 손실이 발생, 412와 함께 사용
Sat, 19 Sep 2026 12:00:00 GMT
If-Match와 유사하나 시각 기준, 조건 불충족 시 412
3600
응답이 캐시에 있던 초, max-age와 함께 만료 판단
Accept-Encoding, Accept-Language
응답이 어떤 요청 헤더에 따라 달라지는지 선언, 캐시 분기 기준
주의: Vary 누락 시 압축 미지원 클라이언트에 압축 본문 전달, 언어 버전 혼선
https://app.example.com
요청 출처, 브라우저가 자동 추가하며 페이지가 위조할 수 없음
https://app.example.com
허용할 교차 출처, *를 쓰면 자격 증명을 함께 쓸 수 없음
주의: 쿠키 사용 시 정확한 출처를 반환해야 하며 *면 브라우저가 응답을 버림
GET, POST, PUT, DELETE
프리플라이트에서 허용하는 메서드
Content-Type, Authorization
프리플라이트에서 허용하는 사용자 정의 요청 헤더
주의: 목록에 없는 사용자 헤더는 프리플라이트 실패, 콘솔에는 CORS로만 표시
true
쿠키와 인증 정보를 함께 보낼 수 있는지 여부
주의: true면 프론트도 withCredentials를 켜야 하며 한쪽만 켜면 데이터 없음
Content-Disposition
페이지 스크립트가 읽을 수 있는 응답 헤더, 기본은 몇 개만 허용
주의: 다운로드 파일명을 못 읽는 것은 대개 Content-Disposition 미노출
600
프리플라이트 결과 캐시 시간, OPTIONS 요청 감소
PUT
프리플라이트에서 실제 사용할 메서드 선언, 브라우저가 자동 생성
Authorization
실제 요청에서 사용할 사용자 정의 헤더 선언
max-age=63072000; includeSubDomains; preload
이후 HTTPS만 사용하도록 강제, 다운그레이드와 쿠키 탈취 방지
주의: preload는 되돌리기 어려움, 작은 max-age로 먼저 검증
default-src "self"; object-src "none"
스크립트·스타일·이미지 로드 출처를 제한하는 정책, XSS 방어의 핵심
주의: Content-Security-Policy-Report-Only로 먼저 관찰 후 정식 헤더로 전환
SAMEORIGIN
iframe 중첩 허용 여부, 클릭재킹 방지
주의: 둘 다 있으면 CSP frame-ancestors가 우선
nosniff
브라우저 타입 추측 금지, 텍스트가 스크립트로 실행되는 것 방지
strict-origin-when-cross-origin
이동 시 얼마나 많은 리퍼러 정보를 보낼지 제어
camera=(), geolocation=(self)
카메라·위치·마이크 같은 브라우저 기능을 켜고 끔
same-origin
브라우징 컨텍스트 격리, 고정밀 타이머와 SharedArrayBuffer의 전제
require-corp
모든 임베드 리소스가 허용을 선언하도록 요구
same-origin
리소스를 동일 출처 페이지만 로드하도록 제한
"cache", "cookies"
브라우저에 사이트 캐시와 쿠키 삭제 요청, 로그아웃 시 사용
주의: HTTPS에서만 동작, 따옴표 오류는 조용히 실패
0
구형 브라우저 XSS 필터 스위치, 폐기됨, 0으로 설정 권장
주의: 1로 설정하면 부채널 문제가 발생, CSP로 대체 권장
뭔가 잘못됐거나 빠진 게 있나요?
피드백 보내기