반응형
쿠키
  • 저장 위치 
    클라이언트의 웹 브라우저가 지정하는 메모리 or 하드디스크
    (브라우저 : 크롬, 네이버웨일, edge 등과 같은 것)
  • 만료 시점
    저장할 때 expires 속성을 정의해 무효화시키면 삭제될 날짜를 정할 수 있음
  • 리소스
    클라인언트에 저장되고 클라이언트의 메모리를 사용하기 때문에 서버 자원을 사용하지 않음
  • 용량 제한
    클라이언트도 모르게 접속되는 사이트에 의하여 설정될 수 있기 때문에 쿠키로 인해 문제가 발생하는 것을 막고자 한 도메인당 20개, 하나의 쿠키 당 4KB로 제한해 둠
    1. 사용자가 웹사이트에 처음 방문하면 서버에서 클라이언트에게 쿠키(고유한 식별자)를 생성하고 전송함.
    2. 클라이언트는 받은 쿠키를 브라우저에 저장함.
    3. 이후 사용자가 같은 웹사이트를 방문할 때, 브라우저는 저장된 쿠키를 함께 서버로 전송함.
  • 예를 들어, 어떤 웹 페이지에 방문하여 로그인을 한 뒤, 동일한 웹 페이지를 방문하였을 때 로그인 상태가 유지되어 있는 이유는 브라우저가 처음에 저장한 쿠키를 두번째 방문 때 서버로 주었기 때문임! 이때 서버는 고유한 식별자로서 구분하고 이전에 로그인한 사용자임을 알아챌 수 있음!
세션
  • 저장위치
    서버의 메모리에 저장
  • 만료 시점
    클라이언트가 로그아웃하거나, 설정 시간동안 반응이 없으면 무효화 되기 때문에 정확한 시점을 알 수 없음
  • 리소스
    세션은 서버에 저장되고, 서버 메모리로 로딩 되기 때문에 세션이 생길 때마다 리소스를 차지함
  • 용량 제한
    클라이언트가 접속하면 서버에 의해 생성되므로 개수나 용량 제한이 없음
  • 세션은 서버 측에서 상태를 유지하기 위한 메커니즘임.
  • 각 세션은 고유한 식별자(session ID)로 구분되며, 이 식별자를 통해 서버는 사용자를 식별하고 해당 세션과 연결된 데이터를 유지함.
    1. 사용자가 웹사이트에 접속하면 서버는 고유한 세션 ID를 생성하고 클라이언트에게 전송함.
    2. 클라이언트는 이 세션 ID를 쿠키 또는 URL 매개변수 등을 통해 저장함.
    3. 사용자의 요청이 서버에 도달하면, 서버는 세션 ID를 사용하여 해당 세션과 연결된 데이터에 접근함.
  • 예를 들어, 클라이언트가 서버에 요청을 보낼 때, 서버는 세션 ID를 사용하여 해당 세션에 저장된 정보를 가져와 로그인 상태를 확인합니다. 따라서 로그인 정보나 장바구니 같은 경우의 정보를 불러온다.

 

쿠키와 세션을 이용한 로그인 메커니즘

사용자가 로그인한 후에는 브라우저가 쿠키를 저장하고, 이후에 해당 웹 페이지를 방문할 때 브라우저가 저장한 쿠키를 함께 서버로 전송하여 서버는 사용자를 식별하고 세션을 통해 로그인 상태를 유지한다.

  1. 로그인 요청: 사용자가 로그인 페이지에서 로그인 정보(일반적으로 사용자명과 암호)를 입력하면, 서버는 이 정보를 받아 인증을 진행한다.
  2. 쿠키 및 세션 생성: 인증이 성공하면 서버는 클라이언트(브라우저)에게 고유한 식별자인 쿠키를 생성하고 응답으로 전송합니다. 이 쿠키는 클라이언트 측에서 저장되어 나중에 사용자를 식별하는 데 사용된다. 또한, 서버는 사용자와 관련된 정보를 저장하고 세션 ID를 생성하여 이를 클라이언트에게 전송한다.
  3. 쿠키 저장: 클라이언트(브라우저)는 받은 쿠키를 저장한다. 일반적으로 쿠키는 브라우저의 쿠키 저장소에 저장된다.
  4. 이후 요청에서 쿠키 전송: 사용자가 이후에 해당 웹 페이지나 다른 페이지를 요청할 때, 브라우저는 저장한 쿠키를 요청과 함께 서버로 전송한다.
  5. 서버에서 로그인 상태 확인: 서버는 받은 쿠키를 확인하여 해당 사용자를 식별하고, 세션을 통해 사용자의 로그인 상태를 확인한다.

이러한 과정을 통해 사용자는 로그인 후에도 쿠키와 세션을 통해 로그인 상태를 유지하게 된다.

이는 사용자 경험을 향상시키고, 로그인 정보를 보안적으로 관리하기 위한 일반적인 방법 중 하나이다.

 

  Cookie Session
저장 위치 client server
저장 형식 text object
만료 시점 쿠키 저장시 설정 (설정 없으면 브라우저 종료 시) 정확한 시점 모름
리소스 클라이언트의 리소스 서버의 리소스
용량제한 한 도메인 당 20개, 한 쿠키당 4KB 제한없음

 

*** Gyoogle 님 블로그를 참고하였습니다.
반응형

'Web Application' 카테고리의 다른 글

REST API  (0) 2023.12.29
HTTP status code (HTTP 상태 코드)  (0) 2023.12.28
HTTP Request Methods  (0) 2023.12.23
브라우저 동작 방법  (0) 2023.12.20
[Node.js] Node.js와 Javascript의 개념  (0) 2023.09.13

+ Recent posts