HTTP 상태와 헤더

HTTP 상태 코드·헤더가 캐시, 인증, 오류 의미를 나누는 방식

HTTP 응답은 상태 코드로 결과 범주를 말하고 헤더로 캐시, 콘텐츠, 인증, 리다이렉트, 보안 정책을 전달한다.

01

요청 처리

서버는 메서드와 경로, 인증, 입력 검증 결과를 바탕으로 상태 코드를 고른다.

status
02

응답 메타데이터

Content-Type, Content-Length, ETag 같은 헤더가 body 해석과 캐시 조건을 정한다.

headers
03

클라이언트 판단

브라우저와 API 클라이언트는 status와 header를 보고 재시도, 리다이렉트, 캐시 사용을 결정한다.

client behavior
04

보안 정책

CORS, CSP, HSTS, Set-Cookie 속성은 브라우저의 보안 경계를 설정한다.

browser policy
2xx/3xx
성공과 리다이렉트는 body보다 상태와 Location, cache header가 중요할 수 있다. 301/308은 영구 이동 의미라 SEO와 캐시에 영향을 준다.
success or redirect
4xx
클라이언트 입력, 권한, 존재하지 않는 리소스 문제를 나타낸다. 400, 401, 403, 404, 409의 의미를 구분해야 복구 UX가 맞다.
client action
5xx
서버나 upstream 실패를 의미하며 사용자가 직접 고치기 어렵다. Retry-After와 correlation id가 운영 대응을 돕는다.
server fault

HTTP 응답 점검

상태 의미 오류를 모두 200이나 500으로 뭉개지 않는다.
캐시 사용자별 응답과 공용 응답의 Cache-Control이 다르다.
보안 헤더 쿠키, CORS, CSP 정책이 앱의 인증 모델과 맞다.

응답 분류

401 unauthenticated
403 authenticated but forbidden
404 resource not found
409 state conflict
503 upstream unavailable