Header Pitfalls

헤더는 이름보다 지시어의 정확한 의미가 중요하다

비슷해 보이는 헤더 지시어도 캐시, 쿠키, 보안 판단에 전혀 다른 결과를 만든다. 운영에서는 오해하기 쉬운 표현부터 분리해야 한다.

no-cache는 저장 금지가 아니라 재검증 요구다
no-store는 저장 자체를 막으려는 지시어다
User-Agent는 위조 가능하므로 보안 근거가 아니다
Cache-Control

no-cache

캐시에 저장될 수 있지만, 재사용 전에 origin에 검증해야 한다.

Cache-Control

no-store

요청 또는 응답을 저장하지 말라는 더 강한 지시어다.

Set-Cookie

HttpOnly / Secure

민감 쿠키는 스크립트 접근을 막고 HTTPS 전송으로 제한하는 편이 안전하다.

Content-Type

보내는 본문

서버와 클라이언트가 본문을 어떤 parser로 읽을지 결정한다.
Accept

받고 싶은 표현

JSON, HTML, 이미지 등 선호하는 응답 형식을 협상한다.
User-Agent

참고 정보

분석과 호환성 판단에는 쓸 수 있지만 쉽게 위조된다.