책 읽다가 코딩하다 죽을래

쿠키 (Cookie) & 세션 (Session) 본문

이론/보안

쿠키 (Cookie) & 세션 (Session)

ABlue 2021. 9. 8. 08:21

🧾 목차

 

1. 쿠키(Cookie)

2. 세션(Session)

3. 쿠키와 세션 차이 정리

 

 


1. 쿠키(Cookie)


🍪 쿠키 정의

 

사용자가 방문한 웹페이지에서 이용된 환경설정 및 기타 정보를 사용자의 컴퓨터에 저장하는 작은 파일입니다.

🔗 GoogleAds 고객센터

 

쿠키는 웹사이트를 방문할 때마다 읽히고 수시로 새로운 정보로 바뀔 수 있는 매개체입니다.

페이티 탐색을 하거나 지역 및 언어, 성능에 대한 보고 혹은 마케팅 용 등 다양한 용도로 사용됩니다.

 

이처럼 쿠키는 유저들의 효율적이고 안전한 웹 사용을 보장하기 위해 웹 사이트에 많이 사용되고 있습니다. 쿠키는 웹사이트의 접속 시 접속자의 개인장치에 다운로드되고 브라우저에 저장되는 작은 텍스트 파일입니다. 웹사이트는 쿠키를 통해 웹사이트를 접속자를 인식하고, 접속자의 설정과 과거 이용내역에 대한 일부 데이터를 저장합니다. 쿠키의 크기는 4KB이며 데이터가 key : value 형태로 저장되어있다.

 

하지만 일반적으로 쿠키는 보안에 위험요소가 존재하다보니 만료일이 존재합니다. 예를 들어, 브라우저를 닫는 경우 자동으로 삭제되는 쿠키도 있으며(세션 쿠키), 일부는 수동으로 삭제되기 전까지 오랜 시간 남아있는 쿠키도 있습니다.(지속적 쿠키)

 

 

📋 쿠키의 동작 순서

 

https://interconnection.tistory.com/74

1. 클라이언트가 서버에게 페이지를 요청(Request)한다.

2. 서버는 쿠키를 생성하여 정보를 담아 HTTP 화면을 돌려줄 때 쿠키도 클라이언트에게 보내준다.(Response)

3. 넘겨 받은 쿠키는 클라이언트가 가지고 있다가 서버에 다시 요청(Request)할 때 요청과 함께 쿠키를 전송한다.

4. 쿠키를 받은 서버는 재방문한 접속자임을 인식하고 그에 맞는 요청 페이지와 쿠키를 전송한다.(Response)

 

 

 🚫 쿠키의 단점

쿠키 값은 사용자가 자유롭게 편집이 가능하며 통신 상 유출되기 쉽습니다. 그래서 중요한 정보나 변경되어도 상관없는 값들이 쿠키에 쓰여야 합니다.

 

 

👀 웹사이트의 쿠키 확인 방법

 

ctrl + shift + j 를 눌러 개발자 도구를 켠 다음 Application 탭을 가면

 

 

 웹의 저장소 종류들이 보이는데 그중 쿠키 탭을 보시면 현재 접속한 사이트의 쿠키를 확인할 수 있다.

 

 이런 식으로 필드 값을 더블 클릭하면 내 마음대로 편집이 가능하다.

 

 

 


2. 세션(Session)


📖 세션 정의

 

세션이란 지정된 기간 내에 웹사이트에서 발생한 사용자 상호작용의 집합을 말합니다. 예를 들어 단일 세션에 다수의 페이지 조회, 이벤트, 소셜 상호작용, 전자상거래가 포함될 수 있습니다. 

 

🔗 구글 애널리틱스 : 유니버설 애널리틱스에서 웹 세션을 정의하는 방법

 

일정 시간동안 같은 사용자로부터 들어오는 일련의 요구나 동작을 하나의 상태로 보고, 그 상태를 일정하게 유지시키는 기술입니다. 여기서 일정 시간은 접속자가 웹 브라우저를 통해 웹 서버에 접속한 시점으로부터 브라우저를 종료하여 연결을 끝내는 시점을 말합니다.

 

즉 방문자가 웹 서버에 접속해 있는 상태를 하나의 단위로 보고 그것을 세션이라고 합니다.

 

세션은 웹 서버의 저장되는 쿠키(세션 쿠키) 라고 볼 수 있으며 보통 브라우저가 종료되면 세션은 제거가 되니 쿠키보다 비교적 보안이 높은 편입니다. 저장 데이터는 서버 용량이 허용하는 전제 하에 제한이 없습니다. 

 

 

📋 세션의 동작 순서

 

 

 

1. 클라이언트가 페이지를 요청(Request)한다.

2. 서버는 접근한 클라이언트의 Request-Header 필드인 Cookie를 확인하여 클라이언트가 해당 session-id를 보냈는지 확인한다.

3. session-id가 존재하지 않는다면, 서버는 session-id를 무작위로 생성해 클라이언트에게 돌려준다.(Response)

4. 서버에서 클라이언트로 돌려준 session-id를 쿠키를 사용해 서버에 저장한다.

5. 클라이언트 재접속 시 쿠키를 이용하여 session-id 값을 서버에 전달합니다.(Request) 서버는 session-id를 통해 재방문한 접속자임을 인식하고 그에 맞는 요청 페이지를 전송 한다.(Response)

 

 🚫 세션의 단점

세션은 브라우저가 종료되면 안전하게 제거됩니다. 장기적으로 저장해야 할 정보는 세션에 저장하지 말아야 합니다.

 

 

 

 


3. 쿠키와 세션 차이 정리


 

  쿠키(Cookie) 세션(Session)
저장 위치 클라이언트(접속자 로컬 저장소) 웹 서버
저장 형식 text Object
만료 시점 쿠키 저장시 설정된 기간(브라우저가 종료되도 만료시점이 지나지 않으면 자동으로 삭제되지 않는다) 브라우저 종료시 삭제(기간 지정 가능)
사용하는 자원(리소스) 클라이언트 리소스 웹 서버 리소스
용량 제한 총 300개
하나의 도메인 당 20개 제한
하나의 쿠키 당 최대 4KB(4096byte)
서버가 허용되는 한 용량제한이 없음
속도 세션보다 빠름 쿠키보다 느림
보안 세션보다 비교적으로 취약함 쿠키보다 비교적으로 안전함

 

🔗 참고 문서 : 쿠키(Cookie), 세션(Session) 특징 및 차이

'이론 > 보안' 카테고리의 다른 글

프로토콜, HTTP와 HTTPS, SSL  (0) 2021.09.02
[암호학] 대칭키와 비대칭키란 무엇인가  (0) 2021.08.31