웹 개발 공부 : Back-end/WEB

[web] 세션(Session)과 쿠키(Cookie)

Developer KTU 2024. 10. 8. 17:13
반응형

1. 개요

사이드 프로젝트를 진행하며 세션을 활용한 기능을 구현하게 됐다. 세션을 다루다보면 꼭 생각나는 것이 '세션과 쿠키는 어떤 점이 다른가?' 인 것 같다. 신입 면접 단골 질문이기도 하고! 그런 점에서 개념을 정리하기 위해 포스팅한다.

 

세션과 쿠키는 사용자 정보를 저장하고 관리하는 방법임은 동일하다. 이 두 기술은 사용자의 상태유지 및 개인 접속정보를 토대로 개인화된 경험을 제공하는 중요한 기술이다. 서로 어떤 점이 다른지 알아보자.

 

 

2. 세션 (Session)

세션 (Session)은 서버 측에서 사용자 정보를 저장한다. 사용자가 서비스에 접속하면 서버에서 사용자마다 고유의 세션ID를 생성한다. 이 세션ID는 사용자의 PC나 브라우저에 기록되고, 사용자가 서비스의 다른 페이지나 요청할 경우 기록된 세션ID가 다시 서버로 전송된다. 이를 통해 서버에서는 각 사용자마다 개인화된 기능을 구현할 수 있는 것이다.

 

2-1. 세션의 특징

1) 상태유지

웹은 상태 정보를 저장하지 않는 HTTP 프로토콜을 사용하기 때문에, 사용자가 어떤 요청을 할때마다 그 사용자가 누군지 식별할 수 없다. 이때 세션을 통해 각 요청이 동일한 사용자인지 식별 가능하기 때문에 상태유지가 가능하다.

2) 식별

사용자가 여러 페이지를 이동할 때마다 서버는 그 사용자가 이전에 어떤 정보를 입력했는지, 어떤 세션 속성을 가지고 있는지 알아야한다. 세션 ID를 통해 개인화된 사용자 정보를 얻을 수 있다.

3) 보안

세션은 서버 측에서 세션ID를 생성하고 관리하기 때문에 브라우저에서 정보를 조작하는 것이 불가능하다. 이러한 이유로 사용자는 세션 ID만 가지고 있으며, 해당 세션ID를 서버측에서 인식해야만 정보를 조회할 수 있기 때문에 안전하다.

 

 

3. 쿠키 (Cookie)

쿠키는 클라이언트 측(브라우저)에 저장되는 작은 데이터 파일이다. 웹사이트가 사용자의 브라우저에 쿠키를 저장하면, 이후 방문 시 해당 쿠키를 통해 사용자 정보를 불러올 수 있다.

 

3-1 쿠키의 특징

1) 클라이언트 성향

쿠키는 사용자의 브라우저에 저장되며, 사용자가 직접 접근하고 수정할 수 있다.

2) 제한된 용량

쿠키는 대략 4KB의 작은 파일로 저장된다.

3) 유효기간

쿠키는 일정 만료시간이 지나면 삭제되며, 만료시간을 지정하지 않으면 브라우저를 닫을 시에 삭제된다.

4) 용도

사용자 선호도 저장, 로그인 정보 기억 (로그인 하면 우측 상단에 뜨는 창 그거다.) 등의 용도로 사용된다.

반응형