User-Agent
User-Agent란 무엇인가요?
User-Agent는 특정 프로토콜을 기반으로 서버에 접근하기 위해 클라이언트 측에서 사용하는 소프트웨어를 의미합니다. 일반적으로 "User-Agent"라고 할 때는 HTTP를 사용하여 웹 서버에 접근할 때 전송되는 HTTP User-Agent를 의미합니다.
HTTP 통신에서 클라이언트 요청과 함께 전송되는 User-Agent 헤더는 해당 User-Agent를 식별합니다. 예를 들어 Windows 10에서 최신 버전의 Google Chrome을 사용해 웹 서버에 접속하는 경우(2016년 2월 기준), User-Agent 헤더에는 다음과 같은 정보가 포함됩니다:
Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36
웹 서버는 이 정보를 다양한 용도로 활용합니다. 예를 들어, 접속 분석을 통해 가장 많이 사용되는 브라우저를 파악하거나 운영 체제에 따라 웹페이지를 맞춤 구성할 수 있습니다(예: PC와 스마트폰에 서로 다른 페이지 표시).
JavaScript나 기타 스크립트를 사용하는 동적 웹사이트에서는 브라우저에 따라 스크립트 실행 방식이 달라질 수 있습니다. 이에 대응하여 브라우저 간 호환성을 확보하려면 브라우저 유형을 식별하고(주로 User-Agent 정보 사용) 각 브라우저에 적합한 코드를 실행해야 합니다. 하지만 User-Agent 정보는 위조될 수 있으므로, 최신 기법에서는 브라우저에 따라 다르게 동작하는 특정 코드를 실행한 후 그 결과를 바탕으로 브라우저 유형을 식별합니다.
과거에는 브라우저별 독자 기능이 널리 사용되어 크로스 브라우저 호환성을 확보하는 것이 큰 과제였습니다. 하지만 브라우저 표준화가 진전되면서 이러한 어려움은 완화되었습니다. 일부 최신 웹사이트는 구형 브라우저에 대한 지원을 명시적으로 제외하여 오래된 기술에 대한 호환성 요구 사항을 줄이고 있습니다.
F5의 BIG-IP iRules를 사용하면 User-Agent 문자열을 간편하게 분석할 수 있어 특정 브라우저의 접근을 차단하거나 사용자를 Sorry 페이지로 리디렉션하는 등의 작업을 수행할 수 있습니다.

