본문 바로가기

Web

[Web] 세션(Session) 이해하기

업무를 하면서 세션에 대해 파악할 일이 있었다.

웹 개발을 하면서 필수적으로 이해해야 할 내용이지만 어렴풋이 알고 있기 때문에 제대로 정리해보기로 했다!

 

일단 이걸 사용하는 이유를 알아야겠다.

세션이 왜 필요한 건데?!

 

HTTP 프로토콜 특성을 이해하면 답을 알 수 있었다.

 

비연결성(Connectionless) : 서버가 클라이언트 요청에 응답을 완료하면 연결을 끊어버림

무상태(Stateless) : 연결을 끊은 뒤 클라이언트 상태를 저장하지 않음

 

사용자가 웹페이지에 접속하면 정해진 화면을 보여준 뒤 연결이 끝난다는 단순한 내용이다.

심플하지만 웹이 빠르고 가볍게 사용될 수 있는 이유인 것 같다.

 

하지만 위의 특성은 단점도 있다.

요청과 응답 한 번으로 연결이 끊기고 상태도 저장이 안 된다면..

단순히 정해진 페이지만 보여주는 웹 사이트를 만들게 될 것이다.

 

사용자의 선택에 따라 값이 저장되며 페이지 이동 후에도 상태가 저장되는 연결성이 필요할 때가 있다.

상태를 저장하고 연결성이 필요할 때 사용되는 것이 쿠키와 세션이다.

 

쿠키는 클라이언트에 저장되는 데이터 파일로서 브라우저가 종료되더라도 상태 값이 저장되는 특징이 있다.

HTTP 프로토콜의 Stateless에 반대되는 특성이다.

 

세션은 서버에 저장되는 데이터로서 브라우저가 종료되기 전까지 데이터가 유지되며 연결되는 특징이 있다.

HTTP 프로토콜의 Connectionless에 반대되는 특성이다.

 

단순하게 정의했지만 HTTP 프로토콜의 단점을 보완하고자 사용된 기술인 것을 확실히 알 수 있었다.

 

이 중에 알아볼 세션은 서버에 저장되는 데이터라는 것이 큰 특징이다.

서버에 저장되기 때문에 보안적인 측면에서 좋지만, 많은 데이터들이 저장되면 서버 과부하의 위험이 있다.

이런 장단점으로 여러가지 데이터보다 사용자 정보나 중요한 상태 값 등을 저장할 때 유용할 것이다.

 

그리고 세션은 쿠키를 사용해서 연결성을 만든다.

세션 id 값을 쿠키로 주고 받으며 클라이언트를 식별하고 연결성을 유지한다.

홈페이지의 로그인 부분이 대표적인 세션의 사용 예라고 보면 되겠다.

 

정리하자면..

세션은 사용자 인증을 위해서 웹에서 주로 사용되고 사용자를 식별하여 데이터를 저장할 수 있는 장점이 있다.

데이터가 서버에 저장되기 때문에 보안적인 측면에서 좀 더 유리하지만 속도 면에서는 조금 아쉬운 단점도 존재한다.

쿠키를 사용하여 클라이언트를 식별한다는 것과 브라우저 종료 시 세션도 삭제된다는 것이  주요 특징이다.

 

이번에는 개념적인 내용만 정리해서 조금 아쉽지만

다음에는 실제 예시와 함께 디테일한 정리를 해봐야겠다.

 

'Web' 카테고리의 다른 글

[Web] 쿠키(Cookie) 이해하기  (0) 2022.07.10