Infrastructure
쿠키(Cookie)와 세션(Session)
Hero_O
2022. 7. 24. 11:58
쿠키(Cookie)
짧은 정리
Key-Value 로 구성된 일반 텍스트 파일, 서버가 인터넷 사용자에게 전송하는 작은 데이터 조각이다.
이 데이터는 각 사용자의 PC에 저장되어 동일 서버에 재 요청할 때 브라우저에 의해 동봉되어 사용자의 상태를 구분할 수 있도록 한다.
역사
넷스케이프 개발자 룬 몬틀리가 매직 쿠키 라는 개념을 차용하여 만들었다.
서버가 각 사용자의 상태를 기록하지 않게 하기 위해 사용자의 PC에 저장하는 쿠키가 만들어졌다.
목적
stateless 한 HTTP 통신에 사용자의 상태를 구분하는 목적을 가진다.
- 세션 관리(Session management)
- 로그인, 장바구니등의 정보를 관리하는 역할을 한다.
- 개인화(Personalization)
- 선호에 맞는 설정을 제공하도록 도와줌.
- 트래킹(Tracking)
- 사용자의 행동을 기록하고 분석하는 용도로 사용 됨
특징
- Key-Value 의 일반 텍스트파일이다.
- 라이프 사이클을 가지고 있다.
- 영속 쿠키 : 만료 기한이 설정되어 해당 만료 기한이 지났을 때 삭제된다.
- 세션 쿠키 : 만료 기한을 설정하지 않아, 해당 브라우저의 세션이 끝날 때 삭제된다.
- 하나의 쿠키는 4Byte를 넘을 수 없다.
장점
- 서버의 저장공간을 절약할 수 있다.
단점
- 쿠키는 탈취당할 수 있어, 보안에 취약하다.
- 네트워크 요청 비용이 커진다.
세션(Session)
짧은 정리
일정 시간 동안 서버에서 사용자 정보를 저장하는 방법을 의미한다.
저장된 세션으로 사용자의 상태를 유지하여 각 사용자를 구분한다.
특징
- 각 사용자에게 Session ID를 부여하여 저장 정보를 구분한다.
- Session ID는 쿠키로 저장되어 매 요청에 동봉되어 전송된다.
- 서버에 저장되기 때문에, 쿠키에 비해 보안이 뛰어나다.
목적
쿠키와 마찬가지로, 사용자의 상태를 일정 기간동안 유지하기 위해 사용된다.
쿠키와 세션의 차이
쿠키(Cookie) | 세션(Session) | |
저장 위치 | 클라이언트(사용자) PC | 서버 PC |
저장 형식 | 텍스트 | 객체 |
속도 | 상대적으로 빠르다 | 상대적으로 느리다 |
보안 | 상대적으로 안전하지 않다. | 상대적으로 안전하다 |