본문 바로가기

쉽게 풀어본 IT 기술

인터넷 쿠키와 세션

컴퓨터에서의 쿠키도 먹는 쿠키에서 표현이 나왔을지 모른다. 개발을 하다보면 쿠키로 구웠냐 라는 표현을 하는 것 봐서는 그럴 수 있다. 변수 값을 단말, 클라이언트쪽에 저장하는 개념이 쿠키이다. 달리 서버에 저장되는 것을 세션이라고 한다.

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

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

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


 책처럼 전체를 보기를 원하시면 아래 링크를 클릭하시고 북마크 하셔서 보시면 편리합니다. 

https://wikidocs.net/22357