0. 쿠키(Cookie)란?

- 웹 서비스를 사용할 때 클라이언트가 정보를 유지하는 성격의 서비스가 많아짐
(ex. 로그인을 통해 볼 수 있는 서비스, 장바구니 등등) - 웹 서버가 브라우저에게 지시한 뒤 사용자의 로컬 컴퓨터에 파일 또는 메모리에 저장하는 작은 기록 정보 파일
- 필요시 정보를 참조하거나 재사용 가능
- 파일에 담겨있는 정보는 인터넷 사용자가 같은 웹 사이트를 방문할 때마다 읽힘
- 새로운 정보로 업데이트 가능
[ 특징 ]
- 이름, 값, 만료일(저장 기간 설정), 경로 정보로 구성
- 클라이언트에 총 300개의 쿠키 저장 가능
- 하나의 도메인 당 20개의 쿠키를 가질 수 있음
- 하나의 쿠키는 4KB(4096byte)까지 저장 가능
1. 쿠키 - 구성요소

구성 요소 | 설명 |
Name | 쿠키의 이름 |
Value | 쿠키에 저장된 값 |
Expires | - 쿠키가 언제 삭제되는지 결정 - ex) expires = "Wdy, DD−Mon−YYYY HH:MM:SS GMT" - 쿠키에 만료일이 포함되어 있으면 영구적 쿠키 - Max-Age 속성을 통해 지정된 만료일이 되면 쿠키가 제거 |
Domain | - 쿠키가 사용되는 도메인을 지정 - ex) domain = @@@@.github.io - 해당 값이 현재 도메인과 일치하지 않으면 "타사 쿠키"로 간주되며, 현재 브라우저에서 거부 |
Path | - 쿠키를 반환할 경로를 결정 - ex) path = / - 도메인의 루트 경로로 이동할 때 쿠키가 전송 |
Secure | 보안 연결 설정 |
HttpOnly | Http 외에 다른 통신 사용 가능 설정 |
2. 쿠키 - 종류
종류 | 특징 |
Session Cookie | - 대부분 만료 시간 (expire data)를 설정 - 메모리에만 저장 - 브라우저 종료 시 쿠키를 삭제 |
Persistent Cookie | - 장기간 유지되는 쿠키 - 파일로 저장 - 브라우저 종료와 관계없이 사용 |
Secure Cookie | - Https에서만 사용 - 쿠키 정보가 암호화 되어 전송 |
Third-Party Cookie | - 방문한 도메인과 다른 도메인으이 쿠키 - 광고 베너등을 관리할 때 유입 경로를 추적하기 위해 사용 |
3. 쿠키 - 동작 순서

- 클라이언트가 페이지를 요청 ( 사용자가 웹사이트에 접근 )
- 웹 서버는 쿠키를 생성
- 생성한 쿠키에 정보를 담아 HTTP 화면을 제공할 때, 함께 클라이언트에게 제공
- 받은 쿠키는 클라이언트가 로컬 PC에 저장하고 있다가, 다시 서버에 요청할 때 해당 요청과 함께 쿠키를 전송
- 동일 사이트에 재방문 시 클라이언트의 PC에 해당 쿠키가 존재하는 경우, 요청 페이지와 함께 쿠키를 전송
4. 세션(HTTP Session)이란?
- 쿠키의 트래픽 문제와 쿠키를 변경하는 보안적인 이슈를 해결하기 위해 등장
- HTTP Session id를 식별자로 구별
- 데이터를 사용자의 브라우저에 쿠키 형태가 아닌 접속한 서버 DB에 정보를 저장
- 클라이언트는 HTTP Session id를 쿠키로 메모리에 저장된 형태로 가지고 있음
- 메모리에 저장하기 때문에 브라우저 종료 시 사라짐
[ 특징 ]
- 웹 서버에 웹 컨테이너의 상태를 유지하기 위한 정보 저장
- 웹 서버에 저장되는 쿠키 ( = 세션 쿠키 )
- 브라우저를 종료하거나, 서버에서 세션을 삭제할 때만 삭제가 되기에 쿠키보다 비교적 보안 측면에서 우수
- 저장 데이터에 제한 X
- 각 클라이언트 고유 Session ID 부여하여 이로 클라이언트를 구분하고 각 클라이언트의 요구에 맞는 서비스 제공
5. 세션 - 동작 순서

- 클라이언트가 페이지를 요청 ( 사용자가 웹 사이트 접근 )
- 서버는 접근한 클라이언트의 Request-Header 필드인 Cookie를 확인
-> 클라이언트가 해당 session-id를 보냈는지 확인 - session-id가 존재하지 않을 시, 서버는 session-id를 생성하여 클라이언트에게 제공
- 서버에서 클라이언트로 돌려준 session-id를 쿠키를 사용하여 서버에 저장
- 클라이언트는 재접속 시, 해당 쿠키를 사용하여 session-id 값을 서버에 전달
6. 쿠키와 세션 차이
쿠키 (Cookie) | 세션 (Session) | |
저장 위치 | 클라이언트 ( 사용자 PC ) | 웹 서버 |
저장 형식 | text | object |
만료 시점 | 쿠키 저장 시 설정 (브라우저가 종료되어도 만료 시점이 지나지 않으면 삭제 X) |
브라우저 종료시 삭제 (기간 지정 가능) |
사용하는 자원 (리소스) | 클라이언트 리소스 | 웹 서버 리소스 |
용량 제한 | - 총 300개 - 하나의 도메인 당 20개 - 하나의 쿠키 당 4KB |
서버가 허용하는 한 제한 X |
속도 | 세션보다 빠름 | 쿠키보다 느림 |
보안 | 세션보다 미흡 | 쿠키보다 좋음 |
728x90
'Server' 카테고리의 다른 글
압축(ZIP) 폴더 오류 / 해결방법 (3) | 2023.12.04 |
---|---|
[Server]프로젝트 배포 진행 (0) | 2023.09.11 |
[HTTP] get post 개념과 차이점 (0) | 2023.08.18 |
[서버] IP와 URL (0) | 2023.08.08 |
[서버] 서버/구축방법/클라우드서버 (0) | 2023.08.07 |