사용자가 사용한 기기, IP, 프로토콜 등등 사용자를 식별하는데 필요한 값들이 있다.
위 값들은 헤더값을 통해 얻을 수 있다.
웹 브라우저나 다른 HTTP 클라이언트가 웹 서버에게 자신의 식별 정보를 전달하는 HTTP 요청 헤더 중 하나이다.
이 헤더는 클라이언트가 어떤 소프트웨어나 브라우저를 사용하고 있는지, 어떤 버전인지, 어떤 운영 체제를 사용하는지 등을 서버에게 알려주는 역할을 한다.
서버는 클라이언트의 브라우저가 호환되지 않는 경우 대체 콘텐츠를 제공하거나 웹 페이지를 다르게 렌더링 할 수 있다. 앱버전별로 대응이 가능한 경우, 디바이스에 존재하는 앱버전을 사용할 수 있다.
브라우저: 웹 브라우저의 종류와 버전을 식별하는 데 사용된다. 이 정보는 웹 서버에서 웹 페이지를 제공할 때 어떤 브라우저를 지원해야 하는지 결정하는 데 도움이 된다.
운영 체제: 클라이언트의 운영 체제(예: Windows, macOS, Linux) 및 운영 체제 버전 정보도 User-Agent 헤더에 포함될 수 있다.
디바이스: 사용자의 디바이스 정보(예: 모바일 또는 데스크톱)도 포함될 수 있으며, 이는 웹 페이지가 모바일 또는 데스크톱 환경에 맞게 최적화되도록 도와준다.
User-Agent: <product> / <product-version> <comment>
크롬으로 접속한 경우, User-Agent 헤더
는 아래와 같을 수 있다.
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36
HTTP 프록시나 로드 밸런서를 통해 웹 서버에 접속하는 클라이언트의 원 IP 주소를 식별하는 HTTP 요청 헤더 중 하나이다.
클라이언트와 서버 중간에서 트래픽이 프록시나 로드 밸런서를 거치면, 서버 접근 로그에는 프록시나 로드 밸런서의 IP 주소만을 담고 있다. 클라이언트의 원 IP 주소를 보기위해 X-Forwarded-For 요청 헤더가 사용된다.
X-Forwarded-For: <client>, <proxy1>, <proxy2>
하나의 요청이 여러 프록시들을 거치면, 각 프록시의 IP 주소들이 차례로 열거된다.
즉, 가장 오른쪽 IP 주소는 가장 마지막에 거친 프록시의 IP 주소이고, 가장 왼쪽의 IP 주소는 최초 클라이언트의 IP 주소다.
위 그림처럼 프록시와 로드 밸런서를 거친 경우, MY-SERVER의 X-Forwarded-For 헤더
값은 아래과 같다.
X-Forwarded-For: 211.12.14.10, 10.20.11.19, 10.20.11.17
클라이언트가 프록시 또는 로드 밸런서에 접속하는데에 사용했던 프로토콜(HTTP 또는 HTTPS)이 무엇인지 확인하는 HTTP 요청 헤더 중 하나이다.
우리의 서버 접근 로그들은 서버와 로드 밸런서 사이에서 사용된 프로토콜을 포함하고 있지만, 클라이언트와 로드밸런서에 사용한 프로토콜은 포함되어 있지 않다. 클라이언트와 로드밸런서 간의 사용된 프로토콜을 확인하기 위해서 사용할 수 있다.
X-Forwarded-Proto: <protocol>
https 프로토콜은 사용한 경우, X-Forwarded-Proto 헤더
값은 아래와 같다.
X-Forwarded-Proto: https
클라이언트가 요청한 원래 Host 헤더를 식별하는 HTTP 요청 헤더 중 하나이다.
리버스 프록시(로드밸런서, CDN) 에서 Host 이름과 포트는 요청을 처리 하는 Origin 서버와 다를 수 있다. 이러한 경우 원래 사용된 Host 를 확인 하는데 사용할 수 있다.
X-Forwarded-Host: <host>
https://www.kurly.com/main 로 요청한 경우, X-Forwarded-Host
값은 아래와 같다.
X-Forwarded-Host: https://www.kurly.com/main