HTTP 프로토콜 환경의 약점을 보완하기 위해 사용한다.
위 두 특징에 따라 예를 들면 쇼핑몰에서 옷을 구매하려는 경우, 로그인을 했음에도 다른 페이지로 이동할때마다 다시 로그인을 해야하는 상황이 발생한다.
이를 해결하기 위해 쿠키와 세션이 사용된다.
클라이언트(브라우저) 로컬에 저장되는 키와 값이 들어있는 작은 데이터 파일
사용자가 따로 요청하지 않아도 request시에 자동으로 request header를 넣어서 자동으로 서버에 전송
사용 예시
- 방문 사이트에서 로그인 시, "아이디와 비밀번호를 저장하시겠습니까?"
- 쇼핑몰의 장바구니 기능
- 자동로그인, 팝업에서 "오늘 더 이상 이 창을 보지 않음" 체크
쿠키를 기반하고 있지만, 사용자 정보 파일을 브라우저에 저장하는 쿠키와 달리 세션은 서버측에서 관리
사용자 정보를 서버에 저장하기 때문에 쿠키보다 보안에 좋지만, 사용자가 많아질수록 서버 메모리를 많이 차지하게 된다.
사용 예시
로그인 같이 보안상 중요한 작업을 수행할 때 사용
| Cookie | Session | |
|---|---|---|
| 저장위치 | 클라이언트 | 서버 |
| 저장형식 | text | object |
| 만료시점 | 쿠키 저장시 설정 | 정확한 시점을 모름 |
| 리소스 | 클라이언트의 리소스 | 서버의 리소스 |
| 용량제한 | 한 도메인 당 20개, 한 쿠키당 4KB | 제한없음 |
| 속도 | 세션보다 빠르다 | 쿠키보다 느리다 |
| 보안 | 세션보다 안좋다 | 쿠키보다 좋다 |
참고자료