본문 바로가기
개발공부/개념정리

쿠키(Cookie), 세션(Session), 캐시(Cache)의 개념과 특징

by parkman

1. 사용 목적

클라이언트가 HTTP 프로토콜의 GET/POST 방식으로 웹 서버에 페이지를 요청하면, 웹 서버에서 응답받은 HTML 페이지를 파싱하여 렌더링을 하는데, 이렇게 클라이언트와 서버 간의 데이터 왕복과정을 ‘라운드 트립(Rount-trip)’ 이라고 한다. (웹은 라운드 트립이 최소화하도록 개발하는 것이 좋다.)

 

이렇게 라운드 트립을 한 번 거치고 나면, 사용자가 입력한 정보들이 손실되는데 동적인 웹 애플리케이션에서는 사용자의 요청 또는 입력 정보를 유지할 필요가 있어서 이러한 정보를 저장해두고 사용할 수 있는 기능이 존재하는데 그 기능이 쿠키, 세션, 캐시 이다.

 

2. 개념

  1. 쿠키(Cookie)

      클라이언트에 대한 정보를 클라이언트(PC)에 저장하기 위해 웹 서버에서 클라이언트(브라우저)로 전송 하는 데이터이다.

      크라이언트는 별도 쿠키 저장소에 쿠키를 저장. 쿠키 안에는 사용자의 로그인 정보 및 웹 사이트에서 어떤 행동을 했는지,

      몇 번 방문했는지 등 서버에서 유저를 식별할 수 있는 데이터가 저장된다고 한다.

  • 사용 예 : 자동로그인 , 오늘그만보기 팝업창 등

 

  2. 세션(Sesstion)

     사용자가 웹 서버에 접속해 있는 상태를 하나의 단위로 인식하여 이를 세션이라고 하는데, 클라이언트가 아닌 웹 서버에 저장

     하는 데이터이다. 서버에서 쿠키에 있는 로그인 데이터를 이용해서 세션 상태를 유지 한다고 하는데 활용한다고 한다.

  • 사용 예 : 로그인 한 정보들

 

  3. 캐시(Cache)

     한 번 내려받은 데이터를 저장소에 저장해두고 재사용할 수 있도록 하는 데이터이다(쿠키와 동일). 웹 사이트에 방문하면

     웹 페이지를 보여주는 리소스가 한 번에 로드되는데, 접속할 때마다 리소스를 내려받을 경우 웹 페이저 접속 속도가 느려질

     수 있다. 따라서 한 번 로드된 리소스는 클라이언트에 저장 해두고, 재요청이 들어올 때 캐시에서 로드해와서 더 빨리 로드

     할 수 있도록 돕는다. 보통 이미지 또 는 사진 파일(jpg, png 등), css, js, 배너 등 변경 사항이 크지 않고, 용량이 큰 파일들을

     가리킵니다. 쿠키와는 비슷하지만 목적성에 차이가 있다.

 

3. 특징

1. 쿠키(Cookie)

        1. 로그인 정보 같이 유저가 굳이 다시 서버에 다시 요청하기에는 비효율적인 정보를 로컬에 저장함으로서

            생산성을 높인다.

        2. 다시 서버에 request 할 필요가 없기 때문에 속도가 빠름.

        3. 보안성이 낮음.

           로그인 정보 등 사용자의 정보가 저장되는 경우가 많으며, 클라이언트PC에 저장 하기 때문에 하드

           에서 꺼내 읽을 수 있음.

 

  2. 세션(Session)

        1. 쿠키와 같이 임시로 유저의 정보를 저장함으로서 생산성을 높인다.

        2. 서버에 저장해두기 때문에 쿠키보다 보안이 우수함.

        3. 서버에서 관리하기 때문에 로그관리 용이함.

        4. 서버에 저장되어있어서 쿠키보다 다소 느리고 유저정보가 많으면 메모리 과부하가 생길 수 있음.

 

  3. 캐시(Cache)

        1. 이미지같은 재사용될 것 같거나 용량이 큰 리소스를 임시로 저장해두어서 렌더링 속도를 높인다.

 

 

 

 

고자료

https://youngjinmo.github.io/2020/03/web-session-cookie-cache/

https://maivve.tistory.com/180

https://velog.io/@kimtaeeeny/%EC%BF%A0%ED%82%A4cookie-%EC%84%B8%EC%85%98session-%EA%B3%BC-%EC%BA%90%EC%8B%9Ccache-FE-study9

728x90
반응형
LIST

'개발공부 > 개념정리' 카테고리의 다른 글

REST API(RESTful API)  (0) 2022.04.01
Spring Security 란?  (0) 2022.03.22
XSS(Cross Site Script), CSRF(Cross Site Request Forgery)  (0) 2022.03.22
API(Application Programming Interface)  (0) 2022.03.14
JWT (Json Web Token)  (0) 2022.03.14