[JavaScript] 세션과 쿠키

2013. 6. 15. 13:33Programming/web

세션과 쿠키..

개발을 하면서 주위로부터 듣기는 많이 들은 단어인데 막상 설명하라면 몬지 잘 모르겠다 -_-;;

그래서 이번 기회에 두 개에 대해 정리하기로..

일단 세션..

세션이란 클라이언트와 서버가 통신하는 기간을 의미한다.

그럼 왜 세션을 이용해야 하는 것일까?

기본적으로 웹 통신은 한번의 요청과 한번의 응답이 진행되면 그 세션은 종료되었다고 말할 수 있다.

그럼 다시 로그인을 해서 인증을 받고 다시 통신을 진행해야 하나??

이것을 방지하기 위해.. 세션ID라는 것을 사용한다.

클라이언트가 처음 접속하였을 때 서버는 해당 클라이언트에 유일한 세션ID를 부여하고 

클라이언트는 서버에 요청을 할때마다 이 세션ID를 사용하여 요청을 하게 되는 것이다.

이렇게 되면 서버에서는 클라이언트가 누군지 다시 찾을 필요가 없고 계속 세션을 유지하게 된다.


쿠키..

쿠키는 클라이언트가 서버에 접속할 때 생성되는 개인 ID와 비밀번호 등을 저장한 임시 파일로써, 클라이언트의 하드디스크에 텍스트 파일로 저장되어 있다가 다음 번에 서버에 접속 시 해당 서버에 클라이언트 정보를 알려주는 역할을 한다.


언뜻보면 세션과 쿠키는 비슷한 기능을 하는 것 같다.

그럼 둘 중 하나만 사용하면 될 것을 이렇게 나눈 이유는 멀까?

먼가 차이점이 있는 것을 아닐까?

가장 큰 차이점은 저장 위치라는 것과 보안 상 쿠키가 세션보다 더 취약하다는 것 정도 인 것 같다.

하지만 최근에는 세션도 보안이 그렇게 높지는 않아 보이니...

서버 트래픽이 많은 경우는 쿠키를 사용하고, 그 외의 보안상 문제가 생길 것 같은 건 세션으로 처리하면 될 것 같다.