Cookie & Session
개념
Cookie & Session
- Http 프로토콜은 stateless 방식을 가진다.
- 상태를 기록하지 않는 방식으로 다른 페이지로 넘어가면 정보를 다시 가져와야 한다.
- 페이지를 넘어갈 때마다 인증정보가 필요하기 때문에 필요한 사용자 정보를 보관할 곳이 필요
- 사용자의 정보를 저장하는 방식은 cookie와 session 두 가지 방식이다.
저장 위치
- 쿠키 - 클라이언트의 웹 브라우저가 저정한 메모리나 하드디스크
- 세션 - 서버의 메모리에 저장
만료 시점
- 쿠키 - 저장할 때 expires 속성을 사용하여 만료시점을 정하고 무효화시킬 수 있다.
- 세션 - 클라이언트가 로그아웃하거나 설정 시간 내 반응이 없으면 무효화된다.
리소스
- 쿠키 - 클라이언트의 메모리에 저장되기 때문에 서버 자원을 사용하지 않는다.
- 세션 - 서버에 저장되고 로딩할 때 서버 메모리로 로드되어 서버 자원을 소모한다.
용량 제한
- 쿠키
- 클라이언트가 모르는 상태에서 접속이 가능할 수 있기 때문에 제한을 둔다.
- 하나의 클라언트에 300개, 한 도메인에 20개, 하나의 쿠키에 4KB로 제한
- 세션
- 클라이언트가 접속하면 서버에 생성되기 때문에 제한이 없다.
단점
- 쿠키
- 상대적으로 보안상의 위험이 존재한다.
- 쿠키에 있는 데이터를 서버에 전송하는 과정에 탈취당할 가능성이 존재한다.
- 보안상 상대적으로 취약하나 서버에 자원을 소모하지 않고 사용할 수 있고 속도가 빠르다.
- 세션
- 해당 세션에 사용자 정보를 보관하기 때문에 여러 서버를 로드밸런싱하게 되면 다른 서버에는 인증정보가 없는 세션 불일치 문제가 발생 가능
- 사용자 정보를 보관하는 저장소를 따로 두면 해결 가능
- 보안상 쿠키보다 안전하나 세션에 데이터가 많을 경우 서버 자원 소모가 크다.
Reference
https://gyoogle.dev/blog/web-knowledge/Cookie%20&%20Session.html
'Network' 카테고리의 다른 글
SSL Handshaking (0) | 2023.04.22 |
---|---|
Load Balancing (0) | 2023.04.13 |
HTTP Status Code (0) | 2023.04.08 |
OSI 7 Layers (0) | 2023.02.18 |
CORS (0) | 2023.02.18 |