[IT Term] 쿠키(Cookie), 세션(Session)


쿠키(Cookie)란 하이퍼텍스트 기록서(HTTP)의 일종으로 인터넷 사용자가 어떠한 웹사이트를 방문할 경우, 그 사이트가 사용하고 있는 서버에서 인터넷 사용자의 컴퓨터에 남기는 기록 정보 파일을 말합니다. HTTP 쿠기, 웹 쿠키, 브라우저 쿠키라고도 합니다. 


이 기록 파일은 사용자가 같은 웹사이트에 방문할 때마다 읽히고 수시로 새로운 정보를 갱신합니다. 오늘날 많은 서버 및 웹사이트들이 브라우저의 신속성을 위해 즐겨 쓰고 있죠.


쿠키는 요청 및 응답하는 과정에 포함되는 텍스트 정보이고 쉽게 구현하여 사용할 수 있는 방법 중에 하나입니다. 일반적인 브라우저에서 최대 4KB의 텍스트 정보를 담을 수 있으며 하나의 사이트는 20개만 허용됩니다. 또한 모든 사이트를 통틀어서 300개로 제한되죠, 만약 이 범위를 넘어서 저장하려고 할 경우에는 가장 오래된 쿠키부터 삭제되므로 사용시 유의해야하고 4KB로 비교적 작은 크기만을 저장하기 때문에 적은 양의 데이터나 ID, 최근 읽은 글, 최근 본 상품과 같은 식별자를 저장할 때 사용하는 것이 적합합니다.


하지만 쿠키는 보안에 관련하여 큰 단점이 있습니다. 스파이웨어를 통해 유저의 브라우징 행동을 추적하는 데에 사용될 수 있고, 누군가의 쿠키를 훔쳐 해당 사용자의 웹 계정 접근권한을 취득할 수도 있습니다.


쿠키의 작동 방식은 다음과 같습니다. 먼저 서버에서 쿠키를 생성하여 클라이언트의 브라우저에 보내져 관리됩니다. 응답을 통해 얻어진 쿠키는 만료시간 여부에 따라 클라이언트의 pc에 파일로 저장되죠. 쿠키의 생성 주기는 처음으로 페이지를 요청할 경우 웹 서버에서는 쿠키를 생성하게 되고, 페이지를 돌려 줄 때 HTTP헤더에 쿠키를 포함하여 돌려 주게 됩니다. 이렇게 넘겨 받은 쿠키는 클라이언트에서 관리하고 있다가, 다음번 요청때 쿠키를 함께 전송하게 되고, 서버에서는 쿠키 정보를 읽어 이전 상태 정보를 알 수 있게 됩니다. 이때 웹 서버는 정보를 변경할 필요가 있을 때, 쿠키를 업데이트하여 다시 변경된 쿠키와 함께 응답하게 됩니다.


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


쿠키의 경우는 방문자의 정보를 방문자의 pc 메모리에 저장하는 반면에 세션은 방문자의 요청에 따른 정보를 웹 서버에 저장합니다. 따라서 서버에서 그 정보를 관리하기 때문에 쿠키보다 보안상의 이점을 한 층 더 업그레이드 할 수 있습니다.


세션의 작동 방식은 다음과 같습니다. 먼저 서버는 접근한 클라이언트에게 response-header field인 set-cookie값으로 클라이언트 식별자인 session-id를 발행합니다. 서버로부터 발행된 session-id는 해당 서버와 클라이언트 메모리에 저장되고 이때 클라이언트 메모리에 사용되는 cookie 타입은 세션 종료 시 같이 소멸되는 "Memory cookie"가 사용됩니다. 그리고 session 기간 동안에 클라이언트가 서버로 접속을 시도하면 서버는 접근한 클라이언트의 request-header field인 cookie를 확인해 클라이언트가 해당 session-id를 보유하고 있는 지 확인합니다. 만약 클라이언트로부터 발송된 session-id가 없다면 서버는 session-id를 생성해 클라이언트에게 response-header field인 set-cookie값으로 session-id를 발행해 응답합니다.


출처 : http://genesis8.tistoy.com/220

이 글을 공유하기

댓글(0)

Designed by JB FACTORY