쿠키와 세션

오현섭 2022. 3. 21. 21:08
반응형

쿠키(Cookie) :
HTTP의 일종으로 사용자가 어떠한 웹 사이트를 방문할 경우,
그 사이트가 사용하고 있는 서버에서 사용자의 컴퓨터에 저장하는 작은 기록 정보 파일이다.
HTTP에서 클라이언트의 상태 정보를 클라이언트의 PC에 저장하였다가 필요시 정보를 참조하거나 재사용할 수 있다.

 

세션(Session)
일정 시간동안 같은 사용자(브라우저)로부터 들어오는 일련의 요구를 하나의 상태로 보고, 그 상태를 일정하게 유지시키는 기술이다. 여기서 일정 시간은 방문자가 웹 브라우저를 통해 웹 서버에 접속한 시점으로부터 웹 브라우저를 종료하여 연결을 끝내는 시점을 말한다.
즉, 방문자가 웹 서버에 접속해 있는 상태를 하나의 단위로 보고 그것을 세션이라고 한다.

쿠키는 개인 PC에 저장되고 세션은 네트워크에 저장된다.

 

쿠키와 세션 사용하는 이유 

웹은 기본적으로 한번 호출하고 응답을 받고 끊긴다. 계속 연결되어 있지 않는 비연결성이라 페이지 호출마다 `클라이언트가 누군인지를 알아야 한다. 최소 어떤 데이터들을 보여주려면 어떤 사람의 것인지는 알아야 하는데, 그 사람이라는 것을 매번 알려준다는 것은 번거로운 일일 수도 있고, 보안상 취약점이 노출될 수도 있다. 그러면 값을 저장을 해야 한다. 그러면 이 값을 어떤식으로 어떻게 저장할 것인가가 문제가 된다. 그것을 단말쪽 클라이언트쪽에 어딘가 파일에 저장하는 것이 쿠키이다. 물론 이 파일은 시스템쪽 폴더에 있다. 사실 들어가보면 누구나 내용을 볼수가 있다. 그래서 바로 나오는 것은 쿠키에 아이디 패스워드같은 것을 저장하게 되면 굉장히 위험하다.

내가 사용하는 컴퓨터이지만 공용에서 사용하는 컴퓨터라면 다른 사람이 내 정보를 볼 수 있다는 얘기다. 쿠키나 세션은 세션을 물론 채팅과 같은 클라이언트가 지속적으로 연결되어 있는 상황에서도 쓸 수 있는 얘기지만, 데이터를 저장한다는 의미에서는 웹사이트에 관련된 내용이다. http 프로토콜의 특성상 한번 연결하고 끊기 때문에 데이터를 저장해야 하는 것이고 쿠키는 클라이언트 세션은 서버에 저장된다. 쿠키를 지금도 사용하기는 한다. 개인정보 관련 없는 내용들을 저장하기에는 좋을 수 있다.

세션 세션은 서버에 저장되는 데이터이다. 세션에는 좀더 보안이 필요한 데이터를 저장할 수 있다. 그럼 세션에도 데이터가 저장이 된다면 데이터베이스에 저장되는 데이터와 어떤 차이일까 데이터베이스에 저장되는 되는 데이터는 사용자 데이터, 정보 데이터 등이다. 웹사이트 상에서 세션 정도에 저장되는 데이터는 기록을 해둬야 하는 정보성이 아니라 상황을 저장하는 데이터가 주이다. 로그인 여부라든가 현재 사용자의 계정정보라든가 하는 데이터가 많아서 저장하는 것이 아니라 데이터베이스까지 연결하지 않고도 확인할 수 있게 하고자 하는 데이터들이다. 이 사용자가 로그인해서 들어왔는데, 다른페이지를 이동했는데, 이동하는 순간 다른 페이지이기때문에 해당페이지에서도 로그인 여부를 필요하다. 누구인지도 알아야 한다. 이런 내용들을 세션 변수에 담아뒀다가 사용할 수 있다. 빠른 속도로 알 수 있다. 데이터베이스는 웹서버, WAS서버와 별도로 있기때문에 거기까지 물어보려면 데이터베이스를 연결하고, 조회해와야 한다. 하지만 세션 변수는 대개 어플리케이션 서버 정도에 있기때문에 그 정보를 바로 알 수 있다.

 

 

'' 카테고리의 다른 글

쿠키  (0) 2022.03.11
http 프로토콜  (0) 2022.03.10
웹의 기초  (0) 2022.03.10