HTTP의 매 요청은 일회성이고 독립적으로 처리되고, 연결에 대한 정보를 따로 가지지 않는다.(stateless)

웹 서버는 사이트를 개인화시켜 더 좋은 기능을 제공하기 위해 통신하는 대상을 식별할 필요성이 생겼고, 이를 위한 많은 기술이 등장했다.

HTTP 헤더

HTTP 헤더들에는 사용자의 정보를 담기 위한 헤더들이 있다.

Untitled

From, User-Agent, Referer 헤더들은 유저를 확실히 식별하기에는 부족한 정보를 가져 잘 사용되지 않는다.

클라이언트 IP 주소

초기 웹 선구자들은 사용자 식별에 클라이언트 IP 주소를 사용하려 했다.

그러나 이 방법은 사용자가 아닌 사용하는 컴퓨터를 가리킨다는 점, 그리고 동적 IP 주소 할당이나 네트워크 주소 변환 방화벽, 프락시 등에 대응하기 어렵다는 단점 때문에 잘 사용하지 않는다.

사용자 로그인

웹 서버는 사용자 이름과 비밀번호로 인증할 것을 요구해서 명시적으로 식별 요청을 할 수 있다.

이 경우 Authorization 헤더를 사용하여 사용자에 대한 식별을 유지한다.

뚱뚱한 URL

사용자의 URL마다 버전을 기술하여 사용자를 식별하고 추적하는 방식. URL 경로의 처음이나 끝에 어떤 상태 정보를 추가해 확장한다.

로그인 없이도 사용자를 식별할 수 있다는 장점이 있으나 다음과 같은 문제들이 있다.