본문 바로가기
🗂 Study/네트워크

쿠키🍪 와 세션

by 뿌맘 2021. 7. 9.
반응형

HTTP는 인터넷 상에서 데이터를 주고받기 위해 서버/클라이언트 모델을 따르는 통신규약을 말합니다.

HTTP 프로토콜은 모든 사용자의 요청마다 연결과 해제의 과정을 거치면서 연결 상태를 유지하지 않고, 연결 해제 후에도 상태 정보를 저장하지 않는 비연결성(Connectionless)비상태성(Stateless)의 특징이 있습니다.

비연결성(Connectionless)
클라이언트가 서버에 요청했을 때, 그 요청에 맞는 응답을 보낸 후 연결을 끊는 처리방식.
비상태성(Stateless)
클라이언트의 상태 정보를 가지지 않는 서버 처리 방식.

 

이런 특성으로 인해 사용자를 식별할 수 없어 같은 사용자가 요청을 여러 번 하더라도 매번 새로운 사용자로 인식하게 됩니다.

이러한 문제점을 보완하기 위한 것이 쿠키세션입니다.

 

🔫 쿠키(Cookie)

쿠키는 사용자가 웹 사이트에 방문 시 생성되는 정보를 담은 임시 파일입니다.

서버가 아닌 클라이언트에 key와 value로 구성된 String 형태로 저장해 두고 필요시에 정보를 참조, 재사용합니다.

 

쿠키의 동작 방식

  1. 클라이언트가 페이지를 요청 시 서버는 쿠키 값을 생성
  2. 서버가 HTTP 응답 헤더에 쿠키를 넣어서 클라이언트에게 전달
  3. 같은 요청을 할 경우 HTTP 요청 헤더에 받았던 쿠키를 함께 서버에 전송
  4. 서버는 전달받은 쿠키값을 읽어서 해당하는 요청을 처리

쿠키 사용 사례

  • 로그인 시 아이디, 비밀번호 저장
  • 팝업창 "하루 동안 보지 않기"
  • 쇼핑몰 장바구니
  • 최근 본 상품

 

🔫 세션(Session)

세션은 일정 시간 동안 브라우저로 들어오는 일련의 요청을 하나의 상태로 보고, 그 상태를 일정하게 유지합니다.

즉, 웹 브라우저를 열어 서버에 접속한 뒤 브라우저 종료하는 시점까지 유지되는 상태입니다.

 

세션의 동작 방식

  1. 클라이언트가 서버에 접속 시 세션 ID를 발급받음
  2. 클라이언트는 쿠키를 사용해 세션 ID를 저장
  3. 클라이언트가 서버에 요청할 때, 이 쿠키의 세션 ID를 서버에 전달
  4. 서버는 세션 ID를 전달받아 세션에 있는 클라이언트 정보 확인
  5. 클라이언트 정보를 가지고 서버 요청 처리 후 클라이언트에게 응답

세션 사용 사례

  • 로그인 정보 유지

 

🔫 쿠키와 세션의 차이점

  • 쿠키 : 클라이언트에 저장
    세션 : 서버에 저장
  • 쿠키 : 브라우저가 꺼져도 만료기간이 남아있다면 정보가 남아있음.
    세션 : 만료기간이 남아있어도 브라우저 종료 시 사라짐
  • 쿠키 : 클라이언트 로컬에 저장되기 때문에 변질되거나 스나이핑 당할 우려가 있어 보안에 취약
    세션 : 쿠키를 이용한 세션 ID로 처리하기 때문에 보안성이 좋음

 

 

 

 

참고

더보기

 

반응형

'🗂 Study > 네트워크' 카테고리의 다른 글

CORS는 무엇일까?💻  (0) 2021.07.30
REST, RESTful이 무엇일까?🤔  (0) 2021.07.23
HTTP 메서드와 역할  (0) 2021.07.09
GET 방식과 POST 방식  (0) 2021.07.08
HTTP와 HTTPS의 차이점 + SSL Handshake  (0) 2021.06.30

댓글