본문 바로가기
서버 & 네트워크

쿠키와 세션

by 자바지기 2021. 9. 10.

HTTP 프로토콜은 서버-클라이언트 통신 시 stateless 방식으로 통신을 한다.

stateless 방식을 쉽게 말하면 브라우저에서 통신이 끝나면 상태를 유지하지 않으므로 새 웹 페이지를 열 때 기존 웹페이지나 서블릿에 관한 어떤 연결 정보도 알 수 없는 방식이다.  

따라서 클라이언트 입장에서 웹 페이지 사이의 상태나 정보를 공유하려면 세션 트래킹이라는 웹 페이지 연결 기능을 구현해야한다. 세션 트래킹은 서블릿끼리 상태나 정보를 공유하는 웹 페이지 연결 기능이다.

세션 트래킹 기능에는 쿠키세션이 있다.

하나씩 살펴보자


쿠키 

쿠키란 웹 페이지들 사이의 공유 정보를 클라이언트 PC에 저장해 놓고 필요할 때 여러 웹 페이지들이 공유해서 사용할 수 있도록 매개 역할을 하는 방법이다.

 

쿠키의 특징:

  • 클라이언트 PC에 저장된다.
  • 보안이 취약하다
  • 웹사이트당 하나의 쿠키가 만들어진다.

쿠키 사용의 예:

'오늘 더 이상 보지 않기' 등의 팝업창이 나타나지 않게 하는 경우

 

 

쿠키의 실행 과정:

  1. 클라이언트가 브라우저로 사이트에 접속
  2. 서버가 정보를 저장한 쿠키를 생성
  3. 생성된 쿠키를 브라우저로 전송
  4. 브라우저는 쿠키 파일을 저장
  5. 브라우저가 재접속하면 서버가 브라우저에게 쿠키 전송을 요청
  6. 브라우저가 서버에게 쿠키 전송
  7. 서버가 쿠키 정보를 이용해 작업 실행

 


세션

쿠키란 웹 페이지들 사이의 공유 정보를 서버에 저장해 놓고 필요할 때 여러 웹 페이지들이 공유해서 사용할 수 있도록 매개 역할을 하는 방법이다.

 

세션의 특징:

  • 서버의 메모리에 저장된다
  • 따라서 보안에 유리하다
  • 그러나 서버에 부하를 줄 수 있다.
  • 브라우저당 1개의 세션이 생성된다.

 

세션의 실행 과정:

  1. 클라이언트가 브라우저로 사이트에 접속
  2. 서버가 브라우저에 대한 세션 객체 생성
  3. 서버가 생성된 세션id를 브라우저에 응답
  4. 브라우저는 세션 id를 브라우저 메모리의 세션 쿠키에 저장
  5. 브라우저가 재접속하면 브라우저 세션 쿠키에 저장된 세션 id를 서버로 전송
  6. 서버가 전송된 세션 id를 통해 해당 세션에 접근하여 작업 실행

 

 

댓글