Yozzang의 해킹일기 💻
article thumbnail
Published 2022. 4. 1. 12:16
쿠키 & 세션 Web
728x90

이번 포스트에서는 쿠키와 세션의 정의, 특징, 차이점 등에 대해 다뤄보도록 하겠습니다.

 

쿠키

쿠키의 개념:

쿠키(cookie)는 HTTP의 일종으로 사용자가 어떠한 웹 사이트를 방문할 때 발생하는 여러 가지 정보를 브라우저에 저장하는 임시 저장 파일입니다. HTTP에서 클라이언트의 상태 정보를 클라이언트의 PC에 저장하였다가 필요할 때 그 정보를 참조하거나 재사용할 수 있습니다. 따라서 쿠키는 클라이언트 측의 정보라고도 할 수 있습니다.  

 

대표적인 쿠키의 예시느 바로 "자동 로그인"이라 할 수 있습니다. 사용자는 어떠한 웹 사이트를 방문할 때 자동 로그인 기능을 선택하면, 자신의 로그인 정보를 쿠키에 담아 브라우저에 저장하다가 나중에 웹 사이트를 재방문할 때 그 쿠키에 담긴 정보로 로그인하여 서버에 정보를 보내줄 수 있습니다. 

쿠키의 동작 방식:

  1. 클라이언트가 페이지를 요청
  2. 서버 측에서 쿠키 생성
  3. HTTP 헤더에 쿠키값을 포함해서 클라이언트 쪽으로 전송
  4. 클라이언트 측은 브라우저에 쿠키를 저장하다가 같은 요청을 할 경우 HTTP 헤더에 쿠키를 함께 보낸다
  5. 서버 측에서 쿠키를 읽어 이전 상태 정보를 변경할 필요가 있을 경우 쿠키를 업데이트하여 변경된 쿠키값을 HTTP 헤더에 포함해서 응답

쿠키의 특징:

  • 쿠키의 크기는 개당 최대 4KB(4096byte)까지 저장 가능
  • 클라이언트에 저장
  • 이름, 값, 만료일, 도메인, 경로 정보로 구성
  • 하나의 도메인 당 최대 20개의 쿠키까지 저장 가능
  • 클라이언트는 최대 300개의 쿠키까지 저장 가능 

 

세션

세션의 개념:

세션(session)은 서버에서 클라이언트에 대한 정보를 담아두고 연결 상태 동안 들어오는 요청은 같은 클라이언트로 인식해 상태와 설정을 유지하는 것입니다. 즉, 사용자가 웹 서버에 접속해 있는 상태를 하나의 단위로 보고 그것을 세션이라고 합니다. 또한 쿠키는 클라이언트에서 서버로 보내 사용자를 식별했다면, 세션은 그 식별 정보를 서버가 가지고 있는 방식입니다.

 

대표적인 세션의 예시로는 사용자가 어떤 웹 페이지에 로그인 하고 나면, 아무리 화면을 이동해도 로그인이 풀리지 않고 로그아웃하기 전까지 유지된다는 것입니다.

세션의 동작 방식:

  1. 클라이언트가 서버에 접속 시 세션 ID를 발급 받는다
  2. 클라이언트는 세션 ID에 대해 쿠키를 사용해서 저장
  3. 클라이언트는 서버에 요청할 때 세션 ID를 포함해서 요청
  4. 서버는 세션 ID를 전달 받아 세션에 세션 ID와 매칭되는 클라이언트 정보를 가져와서 사용
  5. 클라이언트 정보를 가지고 서버 요청을 처리하여 클라이언트에게 응당

세션의 특징:

  • 클라이언트마다 고유 SESSION ID(난수값) 부여
  • 서버에 저장
  • 쿠키보다 큰 용량을 가지고 있다.(사실상 거의 무제한)
  • 브라우저 종료시 세션 쿠키가 삭제된다
  • 쿠키보다 보안적인 측면에서 더욱 안전

 

 

쿠키와 세션의 차이점을 표로 정리하자면 다음과 같습니다. (쿠키와 세션만 놓고 봤을 때)

  쿠키(cookie) 세션(session)
저장 위치 클라이언트 서버
저장 형식 Text Object
만료 시점 브라우저 종료시 삭제 X, 만료 시점이 지날 때 삭제 브라우저 종료시 즉시 삭제
리소스 자원 클라이언트 리소스 서버 리소스
용량 제한 총 300개, 도메인 당 20개, 쿠키당 4KB 서버가 허용하는 한 제한 없음
속도 Fast Slow
보안 Bad Good

 

'Web' 카테고리의 다른 글

HTTP 상태 코드 (HTTP Status Code)  (0) 2022.03.25
HTTP 요청 메소드 (HTTP Request Method)  (0) 2022.02.02
URL Meta 문자  (0) 2022.02.01
profile

Yozzang의 해킹일기 💻

@요짱

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!