Set-CookieSet-Cookie는 서버가 클라이언트에 쿠키를 저장하도록 지시하는 응답 헤더입니다. 브라우저는 이 쿠키를 저장했다가 같은 사이트로의 이후 요청에 Cookie 헤더로 되돌려 보내며, 이를 통해 세션 관리·인증 상태 유지·개인화가 가능해집니다.
여러 개의 쿠키를 설정하려면 응답에 Set-Cookie 헤더를 쿠키 하나당 한 줄씩 여러 번 넣습니다. 한 헤더에 여러 쿠키를 콤마로 묶지 않습니다.
쿠키는 name=value 쌍 뒤에 세미콜론으로 구분된 속성들이 붙는 형태입니다. Expires와 Max-Age가 없으면 브라우저를 닫을 때 사라지는 세션 쿠키가 되고, 둘 중 하나라도 있으면 디스크에 저장되는 영구 쿠키가 됩니다. Max-Age와 Expires가 함께 있으면 Max-Age가 우선합니다.
쿠키를 삭제하려면 같은 name·Path·Domain으로 Max-Age=0(또는 과거 Expires)을 다시 내려보내야 합니다. 설정할 때와 삭제할 때 Path·Domain이 다르면 원래 쿠키가 지워지지 않고 유령 쿠키가 남습니다.
SameSite 기본값은 최신 브라우저에서 Lax입니다. Lax는 최상위 내비게이션(링크 클릭)에는 쿠키를 보내지만 iframe·이미지·교차 사이트 POST에는 보내지 않아 CSRF를 상당 부분 막아줍니다. 서드파티 컨텍스트(다른 사이트에 임베드)에서 쿠키가 필요하면 SameSite=None; Secure를 명시해야 합니다.
Set-Cookie: <name>=<value>[; <attr>]*e.g. Set-Cookie: sid=abc123; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=3600
Expires=<date> | 쿠키 만료 시각(HTTP-date). 지정 시 영구(persistent) 쿠키가 됩니다. |
Max-Age=<seconds> | 상대 만료(초). Expires보다 우선하며 0/음수면 즉시 삭제입니다. |
Domain=<domain> | 쿠키가 전송될 도메인 범위. 생략하면 현재 호스트로 한정(서브도메인 제외)됩니다. |
Path=<path> | 쿠키가 전송될 경로 접두사. 기본값은 요청 경로 기준입니다. |
Secure | HTTPS 연결에서만 쿠키를 전송합니다. |
HttpOnly | JS(document.cookie) 접근을 차단해 XSS로 인한 쿠키 탈취를 완화합니다. |
SameSite=Lax|Strict|None | 교차 사이트 전송 정책. None은 반드시 Secure와 함께 써야 합니다. |
Partitioned | CHIPS: 최상위 사이트별로 파티션된 쿠키 저장소를 사용합니다. |