1. 쿠키란?
쿠키는 클라이언트의 상태 정보를 유지하기 위한 기술이다. 상태 정보를 클라이언트에 키와 값 형태로 저장했다가 다음 요청 시 저장된 쿠키를 함께 전송한다. 그러면 웹 서버는 브라우저가 전송한 쿠키로부터 필요한 데이터를 읽어올 수 있다. 쿠키 표준 RFC 6265에는 다음과 같은 제약이 있다고 명시되어 있다.
- 3000개까지 만들 수 있습니다.
- 쿠키 하나의 최대 크기는 4096바이트입니다.
- 하나의 호스트나 도메인에서 최대 50개까지 만들 수 있습니다.
따라서 쿠키로 저장할 수 있는 최대 용량은 대략 1.2MB이다. 하지만 모든 브라우저가 표준을 그대로 따르지는 않으며 대부분 이보다 적은 수만 지원한다.
2. 동작 메커니즘
- 클라이언트가 서버에 요청을 보낸다.
- 서버가 쿠키를 생성하여 HTTP 응답 헤더에 실어 클라이언트에 전송한다.
- 클라이언트는 쿠키를 받아 저장해둔다. (이 시점에서는 쿠키가 클라이언트에만 저장된 상태이므로 서버는 아직 쿠키를 사용할 수 없다.)
- 클라이언트는 다음번 요청 시 저장해둔 쿠키를 HTTP 요청 헤더에 실어 보낸다.
- 서버는 쿠키의 정보를 읽어 필요한 작업을 수행한다.
메커니즘에서의 '요청'과 '응답'은 일반적인 HTTP 요청과 응답을 말한다. 쿠키는 이 요청과 응답에 부가적으로 실려 전달되는 데이터이다. 또한 쿠키가 처음 만들어진 시점에는 서버가 쿠키를 읽을 수 없다. 다음번 요청 때부터 클라이언트가 전송해주기 때문이다. 따라서 페이지를 새로 고치거나 다시 접속해야 서버가 쿠키를 읽어 활용하게 된다.
3. 사용하는 이유
세션이 쿠키에 비해 보안도가 높은 편이지만 굳이 쿠키를 사용하는 이유는, 세션은 서버에 저장되어 서버 자원을 사용하여 소모되는 자원이 상당하기 때문이다. 자원 관리 차원에서 쿠키와 세션을 적절한 요소 및 기능에 병행 사용하여 서버 자원의 낭비를 방지하고 웹 사이트의 속도를 높일 수 있다.
4. 사용 예시
- 방문했던 사이트에 재방문하였을 때 아이디와 비밀번호를 자동 입력
- 팝업창에서 '오늘 이 창을 다시 보지 않기' 체크
'Dev > Ect' 카테고리의 다른 글
| Swagger - REST API 명세를 문서화 하기 (0) | 2022.09.20 |
|---|---|
| 세션이란? What is a Session? (0) | 2022.08.03 |
| 데이터 교환 형식 (2) - CSV, YAML (0) | 2022.07.27 |
| 데이터 교환 형식 (1) - JSON, XML (0) | 2022.07.27 |
| 소프트웨어 빌드 (Software Build) - 빌드 자동화 (0) | 2022.07.27 |
댓글