Cookie, Session, HTTP

친환경 개발자
|2024. 10. 14. 23:59

HTTP란?

  • HyperText Transfer Protocol

  • 웹에서 데이터를 주고 받을 때 지켜야 할 통신 규약!

  • 대표적 HTTP 메서드 :
    GET, POST, PUT, DELETE

  • URL : 요청을 보낼 때, 어디로 요청을 보낼지에 대한 정보.

  • 헤더(Header): 요청 보낼 때 필요한 추가 정보 (ex. 브라우저 종류, 언어 설정 등
  • 본문(Body) : POST의 경우, 서버에 보낼 데이터를 본문에 포함시킬 수 있음.

  • 비연결성 : 요청과 응답이 종료되면 서로의 상태를 기억하지 않는다!

  • 무 상태: 서버가 클라이언트 상태를 저장하지 않는다.
     => 쿠키와 세션이 필요

 

 

 

 

 

Cookie

 

쿠키란?

  • 웹 서버가 만들어 클라이언트의 브라우저에 저장하는 작은 데이터 조각

  • 클라이언트 요청 시 상황에 따라 서버로 같이 전송

  • 브라우저가 바뀌면 쿠키는 남아있지 않음

 

목적

  • 클라이언트의 정보를 저장하여 활용할 필요가 있을 때
  • 사용자의 패턴 분석을 위해

  • 맞춤 광고, 장바구 등

특징

  • 서버가 아닌 사용자 브라우저에 저장됨

  • 하나의 쿠키는 약 4K
  • 유효기간을 설정할 수 있음

  • 클라이언트 측에 저장되므로 보안에 상대적으로 취약

 

Session

 

세션이란?

  • 사용자가 웹 서버에 접속한 상태를 하나의 단위로 봄
  • 서버 측에서 사용자 상태를 관리하는 방법
  • sessionId를 통해 각 세션을 구분하며, 이는 보통 쿠키로 관리됨

  • 이론상으로는 메모리의 제한이 없이 생성이 가능함

 

목적

  • 사용자 인증 상태 유지(로그인 상태 유지 등)



특징

  • 서버 측에 저장됨

  • 유효기간을 설정할 수 있으며, 만료되면 데이터 사라짐.

  • 서버의 메모리를 사용하므로, 사용자가 늘어나면 부담이 될 수 있음

  • 쿠키에 비해 보안성이 좋음

 

 

 

 

요청과 응답 과정

 

1. 사용자가 웹사이트에 방문

 

2. 서버에 세션 생성, 쿠키 생성하여 클라이언트에 응답 시 돌려줌

 

3. 클라이언트에 쿠키가 저장되며 세션ID가 함께 저장

 

4. 다음 요청 시 가지고 있던 쿠키를 함께 전달

 

5. 세션을 통한 상태 유지 (장바구니, 로그인 상태 등을 계속 유지함)