쿠키란?
쿠키는 웹 사이트를 만드는 쪽에서 사용자와 관련된 정보를 사용자의 하드디스크에 저장해 둔것을 뜻합니다. 여기에서 주의할 단어는 하드디스크 입니다. 사용자의 하드디스크에 작은 텍스트 파일로 저장을 해두기 때문에 사용자가 컴퓨터를 껐다가 켜더라도 언제든지 하드디스크에 저장된 쿠키 파일을 읽어와서 거기에 기록해 놓은 내용을 활용할 수가 있습니다.
사용자의 하드디스크에 정보를 저장하는 이유는 http 프로토콜이 stateless 프로토콜이기 때문입니다. http는 웹 브라우저가 웹 서버에 접속을 해서 어떤 문서나 파일을 요청하면 웹 서버는 요청 받은 내용을 보내준 다음 접속을 끊습니다. 즉, 접속을 한 상태(state)가 지속되지 않고 요청된 것만 처리한 뒤 연결을 끊습니다. 그러므로 웹서버는 일단 요청된 내용들을 클라이언트에 보내고 나면 그 뒤 사용자가 접속을 하고 있는지 어떤지 알 수 없습니다. 나아가, 예전에 접속했던 클라이언트가 또 접속을 한 것인지 아닌지 등은 더더욱 알 수 없습니다. 그런데 웹 사이트를 운용하는 측에서는 어떤 사용자가 다시 방문을 했는지와 같은 정보가 필요했고 바로 이런 점을 해결하기 위해, 즉 stateless한 http의 특징을 커버하기 위해 등장한 것이 쿠키입니다.
쿠키의 아이디어는 간단합니다. 접속한 클라이언트의 하드디스크에 적당한 정보를 저장해 둠으로서 또 그 클라이언트가 접속한 경우 언제든지 하드디스크에 저장된 정보를 읽어 들여서 그 사용자를 인식할 수 있는 것입니다. ‘상태’에 관한 점검을 언제든지 할 수 있는 것 입니다.
쿠키에 저장되는 내용은 천차만별입니다. 간단하게는, 사용자가 어떤 페이지를 읽었고, 로그인 아이디가 무엇인지, 이메일 주소가 무엇인지등을 기록할 수도 있고, 사용자가 어떤 물품을 주문했는지, ip 주소가 무엇인지, 어떤 사이트를 거쳐서 우리 사이트로 왔는지, 또는 서버에서 각 클라이언트를 식별할 특별한 정보를 기록하는 등, 거의 모든 형태의 정보를 저장할 수 있씁니다. 사용자 입장에서는 나의 행동이 하나하나 기록되어 ‘파일’로 저장되고 있고, 그 파일이 다른 곳도 아닌 ‘내’ 컴퓨터에 나도 모르게 저장된다는 것은 별로 좋은 입장은 아닙니다.
쿠키의 이런 독특한 점은 결국 개인 정보 유출에 관한 문제를 일으킵니다. 왜냐하면, 사용자 하드디스크에 그 사용자가 어떤 식으로 웹 서핑을 하고 있는지, 어떤 물건을 구입했는지, 이메일 주소는 무엇인지 등의 개인정보까지 저장될 수도 있기 때문에 누군가 악의적으로 쿠키를 보게되면 민감한 정보가 유출될 수도 있기 때문입니다.
그래서 웹 브라우저에는 대개 쿠키를 항상 받아들일 것인지 아니면 매번 대화상자를 띄워서 물어보길 원하는지 쿠키를 절대 받아들이지 않는지를 선택할 수 있습니다.
'IT 프로그래밍 > IT용어' 카테고리의 다른 글
SessionStorage 와 LocalStorage 차이점 (1) | 2014.01.25 |
---|---|
LDAP 정의 및 설명 (0) | 2014.01.25 |