쿠키(Cookie)
2026년 5월 17일
-
요청에는 한 가지 단점이 있는데 IP주소와 브라우저 정보 정도만 알지 누가 요청을 보냈는지 모른다는 것이다.
-
따라서 로그인과 같은 서비스를 구현하는데 쿠키와 세션(Session)이 필요하다.
-
쿠키는 클라이언트(브라우저) 로컬에 저장되는 key:value의 쌍이 들어있는 작은 데이터 파일이다.
-
사용자 인증이 유효한 시간을 명시할 수 있으며, 유효 시간이 정해지면 브라우저가 종료되어도 인증이 유지된다는 특징이 있다.
-
쿠키는 클라이언트의 상태 정보를 로컬에 저장했다가 참조한다.
-
클라이언트에 300개까지 쿠키저장 가능, 하나의 도메인당 20개의 값만 가질 수 있음, 하나의 쿠키값은 4KB까지 저장한다.
-
Response Header에 Set-Cookie 속성을 사용하면 클라이언트에 쿠키를 만들 수 있다.
-
쿠키는 사용자가 따로 요청하지 않아도 브라우저가 Request시에 Request Header를 넣어서 자동으로 서버에 전송한다.
-
즉, 매 요청마다 서버에 동봉해서 보낸다.
-
서버는 쿠키를 읽어 누구인지 파악한다.
-
예를 들어 방문 사이트에서 로그인 시, "아이디와 비밀번호를 저장하시겠습니까?"와 같이 사용자 정보 저장이나 쇼핑몰의 장바구니 기능 혹은 자동로그인, 팝업에서 "오늘 더 이상 이 창을 보지 않음" 체크 및 쇼핑몰의 장바구니 등이 있다.
쿠키를 사용하는 이유
- 세션(Session)은 서버(Server)의 자원을 사용하기 때문에 무분별하게 만들다보면 서버(Server)의 메모리가 감당할 수 없어질 수가 있고 속도가 느려질 수 있기 때문에 쿠키가 유리한 경우가 있다.
쿠키의 구성 요소
이름
- 각각의 쿠키를 구별하는 데 사용되는 이름이다.
값
- 쿠키의 이름과 관련된 값이다.
유효시간
- 쿠키의 유지시간이다.
도메인
- 쿠키를 전송할 도메인이다.
경로
- 쿠키를 전송할 요청 경로이다.
쿠키의 동작 과정
- 클라이언트가 페이지를 요청한다.
- 서버에서 쿠키를 생성한다.
- HTTP(Hyper Tranfer Protocol) 헤더에 쿠키를 포함 시켜 응답한다.
- 브라우저가 종료되어도 쿠키 만료 기간이 있다면 클라이언트에서 보관하고 있다.
- 같은 요청을 할 경우 HTTP(Hyper Tranfer Protocol) 헤더에 쿠키를 함께 보낸다.
- 서버에서 쿠키를 읽어 이전 상태 정보를 변경 할 필요가 있을 때 쿠키를 업데이트 하여 변경된 쿠키를 HTTP 헤더에 포함시켜 응답한다.
