오래간만에 CS를 보며 쿠키와 세션, 캐시의 차이점에 대해서 공부해보았다.
[ 참고 자료 ]
세션 vs 쿠키 vs 캐시 차이점
ABTCEFG 안녕하세요 여러분! BTC_주먹쥐고 일어서 입니다. IaC로 넘어가기전 기초 탄탄 인프라를 잡는 시간입니다. 다들 IT 멱살 잡고 한걸음 더 나아가 봅시다! 세션 vs 쿠키 vs 캐시 HTTP(상태 비저장
btcd.tistory.com
1. 쿠키
쿠키란?
쿠키는 간단하게 이야기하자면 로컬에 저장할 수 있는 키와 벨류로 이뤄진 데이터 파일이다.
유효 시간을 설정할 수 있으며, 유효시간이 정해지면 해당 브라우저가 꺼져도 유지된다는 특징이 있다.
[ 동작 방식 ]
1) 클라이언트가 페이지 요청
2) 서버에서 쿠키 생성
3) HTTP 헤더에 쿠키를 포함시켜 응답
4) 브라우저가 종료된어도 유효시간이 있다면 클라이언트가 보관
5) 같은 요청씨 HTTP 헤더에서 쿠키를 함께 보내준다
6) 서버에서 쿠키를 읽어 이전 상태 정보 변경이 필요할 경우 쿠키를 업데이트 하여 변경된 쿠키를 HTTP에 포함 시켜 응답
[ 사용 예 ]
쇼핑몰의 장바구니
2. 세션
세션이란?
쿠키와는 반대로 서버에 저장할 수 있는 파일로, 서버에서 관리한다.
브라우저가 종료될 때 까지 유지 되는 특징이 있다.
[ 동작 방식 ]
1) 클라이언트가 서버에 접속 시 세션 ID를 발급 받음
2) 클라이언트는 세션 ID에 대해 쿠키를 사용해서 저장하고 가지고 있음
3) 클라이언트는 서버에 요청할 때, 이 쿠키의 세션 ID를 같이 서버에 전달해서 요청
4) 서버는 세션 ID를 전달 받아서 별다른 작업없이 세션 ID로 세션에 있는 클라이언트 정보를 가져와서 사용
5) 클라이언트 정보를 가지고 서버 요청을 처리하여 클라이언트에 응답
[ 사용 예 ]
로그인한 유저의 데이터
3. 쿠키와 세션의 차이
쿠키와 세션의 차이는 비슷하면서도 사용 목적에서 다르게 나타난다
쿠키 | 세션 | |
저장위치 | 클라이언트 로컬(컴퓨터, 브라우저) | 서버 |
보안 | 취약 | 강함 |
라이프사이클 | 유효시간만 있으면 브라우저 종료되도 삭제 X | 브라우저 종료시 삭제 |
속도 | 빠름 | 느림 |
저장형식 | Text | Object |
용량 | 제한 있음, 총 300개 하나의 도메인 당 20개, 쿠키 당 4KB |
서버가 허용하는 한 제한 없음 |
간단하게 설명하자면
쿠키 : 로컬에 저장되고 Text 저장형식이기에 속도는 빠르나, 보안이 취약하다. 용량 또한 제한이 있으나, 유효시간이 존재하여 유효시간이 만료되지 않으면 삭제되지 않는다.
세션 : 서버에 저장되기에 보안이 강하다. Object 형식으로 저장되어 속도가 느리며, 서버가 허용하는 만큼 생성 가능하나, 브라우저 종료시 삭제된다.
그렇다면 보안이 안전한 세션을 사용하는게 정상적으로 옮지 않느냐? 라는 생각을 할 수 있을 것이다.
하지만 세션의 자원을 무분별하게 생성하면, 서버의 메모리가 부담을 가지게 되어, 속도가 느려질 수 있기에, 쿠키를 사용하는 경우가 존재한다.
4. 캐시
캐시란?
사용빈도가 높은 데이터를 고속으로 액세스 할 수 있는 위치에 두는 임시 저장소같은 개념이다.
특징
(1) 데이터 출력 위치와 갂까운 지점에 일시적으로 저장 - 데이터를 고속 엑세스 가능
(2) 데이터 재사용을 전제로 함
(3) 실제 데이터 액세스 부하를 줄일 수 있음
(4) 데이터 손실 가능성이 있음
CDN(Content Delivery Network)
콘텐츠 전송 네트워크, 지리적으로 웹 콘텐츠를 가까운 곳에 서버를 분산하여 전송 속도를 높임
적합한 시스템
캐시의 데이터가 손실되어도 문제가 없는 시스템에 적합
(1) 참조 빈도가 높은 데이터(다시 사용될 확률이 높은 데이터)
(2) 읽기 전용 데이터
'CS' 카테고리의 다른 글
rest api란 무엇일까 ? (2) | 2024.01.22 |
---|---|
RDBMS, NoSql이란 무엇일까? (0) | 2024.01.14 |
프로세스와 쓰레드란? (0) | 2023.12.07 |
프로세스와 스케줄링에 대해서 (0) | 2023.12.07 |