개발 공부 기록

[개념] 쿠키와 세션 본문

개발/기타

[개념] 쿠키와 세션

_김도연 2020. 9. 6. 22:07

1. HTTP의 특징

서버와 클라이언트가 통신할 때마다 서버는 클라이언트가 누구인지 인증을 해야 함.

HTTP 프로토콜의 특성

  • Connectionless : 클라이언트가 요청을 한 후 응답을 받으면 그 연결을 끊어 버림
  • Stateless : 통신이 끝나면 상태를 유지하지 않음

2. 쿠키와 세션을 사용하는 이유

쿠키와 세션은 HTTP의 특징을 해결해 클라이언트 인증을 유지하기 위해 사용한다.

3. 쿠키 (Cookie)

쿠키는 클라이언트(브라우저)에서 관리하는 작은 기록 정보 파일을 의미한다.

쿠키의 구성요소

  • 이름 - 각 쿠기를 구별하기 위해 사용
  • 값 - 쿠기가 갖고 있는 값(value)
  • 유효시간 - 쿠키의 유지시간
  • 도메인 - 쿠키를 전송할 도메인
  • 경로 - 쿠키를 전송할 요청 경로

쿠키 동작 방식

1. 클라이언트가 페이지를 요청

2. 서버에서 쿠키를 생성

3. HTTP 헤더에 쿠키를 포함시켜 응답

4. 브라우저가 종료되어도 쿠키 만료 기간이 있다면 클라이언트에서 보관

5. 쿠키가 존재하면 요청을 할 경우 HTTP 헤더에 쿠키를 함께 보내서 요청

6. 서버에서 쿠키를 읽어 정보를 업데이트할 필요가 있을 경우, 쿠키를 업데이트하여 변경된 쿠키를 HTTP 헤더에 포함시켜 응답

 

쿠키 사용 예시

  • 사이트 언어(ex. 한국어, 영어 등) 선택 및 유지
  • 로그인 시, 아이디 자동 저장 기능
  • 쇼핑몰 장바구니

4. 세션 (Session)

세션은 쿠키를 기반으로 하고 있지만, 쿠키와 달리 세션은 서버(Server)측에서 관리한다.

서버에서는 클라이언트를 구분하기 위해 세션 ID를 부여하며 웹 브라우저가 서버에 접속해서 브라우저를 종료할 때까지 인증 상태를 유지한다. 접속 시간에 제한을 두어 일정 시간 응답이 없다면 세션을 끊도록 설정할 수도 있다.

사용자에 대한 정보를 서버에 저장하기 때문에 쿠키보다 보안에 좋지만, 사용자가 많아질수록 서버 메모리를 많이 차지하게 된다.

 

세션의 동작 방식

1. 클라이언트가 서버에 접속 시 세션 ID를 발급

2. 클라이언트는 세션 ID에 대해 쿠키를 사용해서 저장

3. 클라이언트가 서버에 다시 접속 시 이 쿠키를 이용해서 세션 ID 값을 서버에 전달

 

세션의 특징

  • 각 클라이언트에게 고유 ID를 부여
  • 세션 ID로 클라이언트를 구분해서 클라이언트의 요구에 맞는 서비스를 제공
  • 보안 면에서 쿠키보다 우수
  • 사용자가 많아질수록 서버 메모리를 많이 차지하게 됨

 

세션의 사용 예시

  • 로그인한 유저의 상태 유지

 

출처: victorydntmd.tistory.com/34

Comments