서버에서 사용자 브라우저로 전송하는 Key-Value 형태의 작은 데이터 조각을 의미
사용자의 웹 브라우저에 저장되기 때문에 HTTP의 비연결성과 상태없음을 보완한다.
주로 세션 관리, 개인 설정 유지, 사용자 트래킹 용도로 사용된다.
클라이언트와 서버가 통신을 위해 서로 연결된 순간부터 통신을 마칠 때 까지의 기간을 의미한다.
세션을 지칭할 때는 서버에 저장된 클라이언트 세션에 대한 정보를 지칭하는 경우가 많다.
쿠키와 같이 HTTP의 상태없음을 극복하고 사용자의 상태를 관리하기 위해 사용된다.
| 쿠키 (Cookie) | 세션 (Session) | |
|---|---|---|
| 설명 | 클라이언트에 저장될 목적으로 생성한 작은 정보를 담은 파일 | 서버에서 일정시간 동안 클라이언트 상태를 유지하기 위해 사용 |
| 저장위치 | 클라이언트 (웹 브라우져) | 웹 서버 |
| 사용예 | 사이트 팝업의 "오늘 다시보지 않기" 정보 저장 | 로그인 정보 저장 |
| 만료시점 | 쿠키 저장 시 만료일시 설정 가능 (브라우져 종료시도 유지 가능) | 다음 조건 중 하나가 만족될 경우 만료됨 1. 브라우져 종료 시까지 2. 클라이언트 로그아웃시까지 3. 서버에 설정한 유지기간까지 해당 클라이언트의 재요청이 없는 경우 |
| 용량제한 | 브라우져 별로 다름 (크롬 기준) - 하나의 도메인당 180개 - 하나의 쿠키 당 4KB(=4096byte) | 개수 제한 없음 (단, 세션 저장소 크기 이상 저장 불가능) |
| 보안 | 취약 (클라이언트에서 쿠키 정보를 쉽게 변경, 삭제 및 가로채기 당할 수 있음) | 비교적 안전 (서버에 저장되기 때문에 상대적으로 안전) |