쿠키 & 세션

2023. 5. 14. 18:54web

1. 쿠키

  • 클라이언트(브라우저)에 저장되는 Text 정보
  •  클라이언트의 컴퓨터 하드디스크에 파일의 형태로 저장된다. (브라우저마다 저장위치 다름)
    • 크롬(MAC) : /Users/사용자명/Library/Application Support/Google/Chrome/Default
    • 크롬(WINDOWS) : C:\Users\<자신의사용자계정명>\AppData\Local\Google\Chrome\User Data\Default
  • 동작과정
    1. 웹사이트에 접속시도를 한다. ----> 클라이언트가 서버에게 http 요청을 보낸다.
    2. 웹사이트에 접속한다.   ----> 서버가 클라이언트에게 http 응답을 보낸다. 이때 쿠키를 함께 보낸다.
    3. 들어가자마자 뜨는 광고를 "더이상 보지 않기" 한다. ---->  쿠키 정보 중 "광고보기"가 False로 설정된다.
    4. 새로고침을 하면 광고가 뜨지 않는다. ----> 클라이언트가 서버에게 http 요청 + 쿠키를 보낸다. 기존 쿠키에서 변경되었으므로 http 응답 + 쿠키를 함께 클라이언트에게 보낸다.
  • 라이프사이클
    • 각 쿠키에는 만료시간이 존재한다.
    • 즉, 웹사이트가 닫혀도 쿠키의 만료시간이 아직 남아있다면 쿠키는 사라지지 않는다.
    • 만료시간이 남아있더라도 만료시간을 0으로 브라우저든 서버든 변경시켜주면 만료된다.
  • 특징
    • 속도 빠름(서버 연산 x), 보안 취약함.

 

2. 세션

  • 쿠키를 기반으로 동작하는 기술.
  • 중요정보(세션)을 쿠키에 담아서 전송하고 싶은 경우, 중요정보의 ID값인 세션ID만을 쿠키에 저장해서 전송한다.
  • 실제 세션은 DB에 저장된다.

 

  • 동작과정
    1. 웹사이트에 접속시도를 한다. ----> 클라이언트가 서버에게 http 요청을 보낸다.
    2. 웹사이트에 접속한다.   ----> 서버가 클라이언트에게 http 응답을 보낸다. 이때 쿠키를 함께 보낸다.
    3. 로그인을 시도한다. ----> 클라이언트가 서버에게 http POST 요청 보낸다.
    4. 로그인이 성공했다. ----> 서버가 클라이언트에게 http 응답 + 세션ID가 담긴 쿠키를 함께 보낸다.
    5. 새로고침을 해도 로그인이 유지된다. ----> 클라이언트가 서버에게 http 요청 + 세션ID가 담긴 쿠키를 보낸다. 서버에서는 쿠키에 담겨서 온 세션ID를 세션DB table에서 조회해서 있으면 http 응답 + 세션ID가 담긴 쿠키를 클라이언트에게 보낸다. 없다면 http 응답 + 세션ID가 없는 쿠키를 클라이언트에게 보낸다.

 

  • 라이프사이클
    • 세션도 쿠키의 일종이므로 만료시간이 존재한다.
    • 즉, 웹사이트가 닫혀도 세션ID의 만료시간이 아직 남아있다면 세션ID는 사라지지 않는다.
    • 만료시간이 남아있더라도 만료시간을 0으로 브라우저든 서버든 변경시켜주면 만료된다.

 

  • 특징
    • 속도 느림(서버 연산 o), 보안 비교적 강함.

'web' 카테고리의 다른 글

gRPC  (0) 2023.07.11