- 웹 서버는 서로 다른 수천개의 클라이언트와 동시에 통신함.
- 서버 들은 익명의 클라이언트로 부터 받는 모든 요청을 처리하는 것 뿐만 아니라 서버와 통신하고 있는 클라이언트를 추적해야 할 수도 있음.
- 서버가 통신하는 대상을 식별하는 데 어떤 기술을 사용하는지 알아보자.
개별 접촉
- 현대의 웹 사이트들은 개인화된 서비스를 제공하고 싶어함.
- 기록한 내용을 바탕으로 사이트를
개인화
시켜서 사용자에게 제공함.
- 사용자 특화 환영 메시지 혹은 페이지 내용이 보여짐.
- 고객의 생일이나 특별한 날에 고객의 흥미에 따라 특별한 제품을 추천.
- 주소, 신용 카드 정보 등을 데이터베이스에 저장하여, 식별된 사용자는 더 이상 정보를 입력하지 않고 편리하게 사용함.
- HTTP 트랜젝션은 상태가 없음(stateless). 하지만 많은 웹사이트에서 사용자가 사이트와 상호작용할 수 있게 사용자의 상태를 필요로 함. (ex 장바구니 기능)
- 상태를 유지하기 위해서, 웹 사이트는 사용자에게서 오는 HTTP 트랜젝션을 식별할 방법이 필요함.
<aside>
👇 HTTP의 사용자 식별 기술에 대해 알아보자.
</aside>
HTTP 헤더

일반적인 일곱 가지 HTTP 요청헤더
- 우선 앞의 3개 (From, User-Agent, Referer)를 살펴보자.
(쉽기 때문..)
From
- 사용자의 이메일 주소를 포함함.
- 다만 악의적인 목적으로 사용자들의 이메일 주소를 모아 스팸메일 발송 등의 문제가 있어서 From 헤더를보내는 브라우저는 많지 않음.
- 보통 로봇이나 스파이더는 본의 아니게 웹 사이트에 문제를 일으킬 경우를 대비해 적어 놓음.
User-Agent
- 사용자가 사용하고 있는 브라우저의 이름과 버전정보, 운영체제에 대한 정보를 보냄.
- 보통 특정 브라우저에서 제대로 동작할 수 있도록 콘텐츠를 최적화는데 유용함.
- 다만 사용자 식별에는 도움이 되지 않음.
Referer
- 사용자가 현재 페이지 기준 이전 웹페이지 URL을 가리킴.
- 사용자를 식별할 수는 없지만, 사용자가 이전에 어떤 페이지를 방문했는지를 알아내어 사용자의 웹 사용 행태나 취향을 파악할 수 있음.
<aside>
👇 위의 3개 헤더들은 사용자 정보를 확실하게 식별하기에는 부족함. 더 자세히 특정 사용자를 식별하는 방법들을 알아보자.
</aside>