영상후기 - 쿠키, 세션, 캐시가 뭔가요?

차관호·2023년 3월 14일
0

movie

  1. 쿠키
  • 쿠키는 클라이언트 측에 저장된 키와 함께 들어있는 작은 파일입니다.

  • 클라이언트의 상태정보를 로컬에 저장합니다.

  • 그래서, 장바구니 기능, '오늘 더 이상 창을 보지않음 창 팝업' 등에 사용됩니다.

    1) 클라이언트가 페이지를 요청하면
    2) 서버에서 쿠키를 생성해, http 헤더에 쿠키를 포함시켜 응답합니다
    3) 클라이언트는 이 쿠키를 로컬 pc에서 갖고 있다가, 다시 서버에 요청할 때 HTTP 헤더에 이 쿠키를 함께 전송합니다.
    4) 서버에서는 이 쿠키를 읽어 이전 상태정보를 변경할 필요가 있으면 쿠키를 업데이트해 HTTP 헤더에 변경된 쿠키를 넣어 반환합니다.

  1. 세션
  • 세션은 사용자 정보를 서버측에서 관리합니다.

  • 즉, 보안성이 좋야아 하는 로그인같은 보안 중요작업에 사용됩니다.

  • 서버는 클라이언트 구분을 위해 세션 ID라는 것을 부여합니다. 웹 브라우저가 서버에 접속하고, 브라우저를 종료할 때 까지 인증상태를 유지합니다.

    1) 클라이언트가 페이지를 요청하면
    2) 서버는 접근한 클라이언트의 request-header필드의 쿠키를 확인해 클라이언트가 세션id를 보냈는지 확인합니다.
    3) 만약 세션id가 존재하지 않으면 서버는 세션id를 생성해 클라이언트에 함께 돌려줍니다.
    이 때, 서버측에서는 세션 저장소에 해당 id를 저장해, 차후 구분할 수 있도록 합니다.
    4) 클라이언트는 세션id를 받으면, 이걸 쿠키를 사용해 저장하고 가지고 있습니다.
    5) 클라이언트는 이제 같은 요청으로 서버에 접속할 때, HTTP요청에 이 세션ID를 같이 서버에 전달해 요청합니다.
    6) 서버는 세션 ID를 전달 받고, 세션저장소에서 해당 세션 ID값을 찾아 클라이언트 정보를 가져와서 클라이언트를 구분합니다. 그리고 요구에 맞는 서비스를 제공합니다.

  1. 차이
  • 데이터 저장위치는 쿠키는 브라우저, 세션은 서버입니다.
  • 보안성은 쿠키가 저장위치가 클라이언트라는 점에서 스니핑을 당할 우려가 있기 때문에 세션측이 좀 더 좋습니다.
  • LifeCycle은 쿠키는 브라우저가 종료되어도 쿠키에 저장된 만료일(저장기간) 값이 남아있으면 존재하고, 세션은 브라우저 종료 시, 만료기한에 상관없이 종료됩니다.
  • 속도측은 세션이 서버에 정보가 있기 때문에, 쿠키측이 더 빠릅니다. 하지만, 사용자가 많아질수록 서버 메모리를 많이 차지합니다.
  1. 추가!) 브라우저 저장소(웹 스토리지)
  • 서버전송 없이 클라이언트에 데이터를 저장할 수 있도록 HTML5부터 추가된 저장소로, 오직 문자형 데이터 타입만 지원합니다.

  • 쿠키는 서버가 클라이언트에게 전송하는 데이터 파일로, [이름/값/만료일자] 등 데이터를 포함합니다. 모든 브라우저에서 지원되나, 매번 서버에 전송되고, 저장용량이 작으며, 보안에 취약합니다.

  • 웹 스토리지는 쿠키의 단점을 보완하려 등장한 개념입니다.

  • 웹 스토리지는 클라이언트에서 저장만 할 뿐, 서버로 전송하지 않기 때문에 전송에 따른 위험이 없습니다.

  • 웹 스토리지는 지속성에 따라 두 가지로 나뉘는데, 로컬 스토리지(Local Storage)는사용자가 데이터를 지우지 않는 이상, 브라우저나 OS를 종료해도 계속 브라우저에 남아있습니다. 즉, 영구적 저장 특성을 가집니다.

  • 하지만, 세션 스토리지는 데이터가 브라우저 탭에 종속되기 때문에, 윈도우나 브라우저 탭을 닫을 경우 제거됩니다.

  1. 캐시
  • 리소스 파일들의 임시저장소
  • 같은 웹페이지에 접속할 때, 이전에 사용되었던 데이터는 다시 사용될 가능성이 높다라는 생각을 기초로 해서 다시 사용될 확률이 있는 데이터들을 빠르게 접근 가능한 저장소에 저장하는 것이에요!
  • 보통 이러한 리소스의 대상은 이미지, 비디오 오디오, CSS/JS 등이에요 이런건 데이터 사용량도 좀 들고, 시간도 걸리니까 매번 서버에서 불러오면 시간이 너무 오래 걸리는 걸 대상으로 합니다. 또, 변경사항이 크지 않습니다.
profile
안녕하세요 :-)

0개의 댓글