TIL_230921: 쿠키 & 세션 & 캐시

Sol Lee·2023년 9월 21일
0

쿠키 & 세션 & 캐시

많이 들어보긴 했는데 누가 이게 뭐냐고 물어보면 대답 못 함.

어제 강의에서 쿠키에 대해서 잠깐 설명했는데 워낙 대략적으로 설명하고 넘어가서 이해가 안 됨.

이번 기회에 정리하고 넘어가려고 함.

HTTP

강의에서 '쿠키' 라는 개념은 HTTP의 무상태성과 비연결성에 대해 설명할 때 나왔음.

서버는 클라이언트의 상태를 보존하지 않음. 계속 연결되어 있지 않기 때문에 서버의 자원을 효율적으로 사용할 수 있지만 서버가 클라이언트를 식별할 수 없게 됨.

이 경우에는 페이지를 이동하면 요청한 클라이언트의 정보를 저장 할 수 없고 새로고침을 할 때마다 로그인을 해야 함.

이런 문제를 해결하기 위해 쿠키세션이라는 기술을 사용함.

🍪 쿠키

HTTP 헤더에 포함되는 정보중 하나로 클라이언트의 브라우저에 저장되는 작은 기록 파일.
Key-Value 형식이고 보안에 취약한 편이라 노출되어도 상관 없는 정보를 담는데에 사용.

  1. 클라이언트 요청(쿠키없음) → 서버
  2. 서버 응답(set-cookie) → 클라이언트 브라우저에 쿠키 저장
  3. 클라이언트 요청(cookie) → 서버 쿠키로 클라이언트 정보 식별

💡 세션

세션은 서버측에 저장하는 중요한 정보. 보통 브라우저를 종료할 때 까지 유지됨.
세션 ID 자체는 유의미한 개인 정보를 담지 않지만 해커카 세션 ID 탈취해 클라이언트인 척 위장할 수 있음.

  1. 클라이언트 로그인 요청 → 서버 인증 성공시 세션 ID 발급
  2. 서버 응답(쿠키에 세션 ID 포함) → 클라이언트
  3. 클라이언트 요청(세션ID in cookie) → 서버 세션 ID로 클라이언트 판별

💰 캐시

다시 사용될 가능성이 높은 데이터를 로컬의 임시저장소에 저장해두고 재사용.

이미지, 사진 파일 등 용량이 큰 파일의 경우 매번 다시 받을 경우 시간이 오래 걸리기 때문에 캐시를 사용함으로써 페이지 로딩 속도가 빨라질 수 있음.

단, 변경이 잦은 데이터의 경우 이전 캐시가 삭제되기 전까지 변경된 값이 아닌 이전 데이터만을 가져올 가능성 이있으니 이 부분을 고려해야 함.


참고
쿠키, 세션, 캐시란?
쿠키, 세션, 토큰(JWT) 몰라도 괜찮겠어?

profile
직업: 개발자가 되고 싶은 오레오 집사

0개의 댓글