블로그 이전했습니다. https://jeongzero.oopy.io/
쿠키란?(먹는거 아님)
본문 바로가기
컴퓨터 관련 과목/Network

쿠키란?(먹는거 아님)

728x90

이전에 HTTP 서버는 상태를 유지하지 않는다고 했다. 이것은 서버 설계를 간편하게 하고 동시에 수천개의 TCP 연결을 다룰 수 있는 고성능의 웹 서버를 개발하도록 해주었다. 그러나 서버가 사용자 접속을 제한하거나 사용자에 따라 콘텐츠를 제공하기 원하므로 웹 사이트가 사용자를 확인하는 것이 바람직할 때가 있다. 이 목적으로 HTTP는 쿠키를 사용한다. 대부분의 주요 상용 웹 사이트는 쿠키를 사용하고 있다.


쿠키 기술은 주요 네가지 요소로 구성되어 있다.



1. HTTP 응답 메시지 쿠기 헤더 라인


2. HTTP 요청 메시지 쿠키 헤더 라인


3. 사용자의 브라우저에 사용자 종단 시스템과 관리를 지속시키는 쿠키 파일


4. 웹 사이트의 백엔드 데이터베이스


예를 통해 쿠키가 어떻게 작동하는 알아보쟈.



1. PC로 크롬을 이용하여 항상 웹 접속을 하는 수잔이 처음으로 아마존 닷컴에 접속했다고 가정하자. 아마존 웹 서버는 서버에 요청이 들어올 때 그 서버는 유일한 식별 번호를 만들고 이 식별번호로 인덱스되는 백엔드 데이터베이스 안에 엔트리를 만든다. 그런 후 아마존 웹 서버는 수잔의 브라우저에 응답하는데, 이 HTTP 응답에 식별번호를 담고 있는 Set-cokkie: 헤더가 포함된다. 위 사진을 보면 굵게 표시된 set-cookie: 1678이 해당 부분이다.


2. 수잔의 브라우저가 HTTP 응답 메시지를 받았을 떄 그 Set-cookie: 헤를 볼 수 있다. 그 다음 브라우저는 관리하는 특정한 쿠키 파일에 그 라인을 덧붙이게 된다. 이 라인은 서버의 호스트 네임과 Set-cookie: 헤더와 식별번호를 포함한다. 수잔이 과거에 이베이 사이트를 방문했기 때문에 쿠키 파일은 이베이에 대한 엔트리를 가지고 있다. 

 

수잔이 계속해서 아마존 사이트를 살펴봄에 따라, 그녀가 웹 페이지를 요청할 때 그녀의 브라우저는 쿠키 파일을 참조하고 이 사에트에 대한 그녀의 식별 번호를 뽑아 HTTP 요청에 식별번호를 포함하는 쿠키 헤더파일을 넣는다. 특히 아마존 서버로의 각 HTTP 요청은 다음과 같은 헤더라인을 포함한다.

Cookie : 1678 

이러한 방식으로 아마존 서버는 수잔의 아마존 사이트에서의 활동을 추적할 수 있다. 비록 아마존 웹 사이트는 수잔의 이름을 알 필요는 없지만 1678 사용자가 어느 페이지를 , 어떤 순서로 몇시에 방문했는지 정확히 알 수 있다. 아마존은 쇼핑 카트 서비스를 제공하기 위해 쿠키를 사용한다. 아마존은 수잔의 모든 원하는 구매 리스트를 유지할 수 있어서 그녀는 세션이 끝날 때 그것들을 총괄하여 지불할 수 있다.


만약 수잔이 아마존 사이트를 일주일 후에 다시 접속하면 그녀의 브라우저는 Cookie:1678을 헤더라인에 넣어 요청 메시지를 보낼 것이다. 아마존은 또한 그녀가 과거에 아마존에서 방문한 웹 페이지에 기초하여 제품을 추천한다. 만약 수잔이 자신을 아마존에 등록한다면(개인 정보) 아마존은 이 정보를 데이터베이스에 추가하고, 그것에 의해 그녀의 식별번호를 수잔의 이름과 연관시킨다.


이렇게 쿠키는 비상태 HTTP 위에서 사용자 세션 계층을 생성하는데 이용된다. 사용자가 웹 기반 전자메일 애플리케이션으로 로그인했을 때 브라우저는 서버에 쿠키 정보를 보내고 그 애플리케이션에서 사용자 세션 시간 동안 사용자를 식별하도록 한다.


728x90

'컴퓨터 관련 과목 > Network' 카테고리의 다른 글

비연결형 전송계층 프로토콜 : UDP  (0) 2019.01.05
DNS란?  (1) 2019.01.05
HTTP 메시지 포맷  (0) 2019.01.03
HTTP 비지속 연결과 지속 연결  (3) 2019.01.02
HTTP 개요  (0) 2019.01.02