User-Agent 파서
User-Agent 문자열에서 브라우저, 엔진, OS, CPU, 기기 유형·모델을 감지하고 분석합니다.
User-Agent 문자열을 브라우저, 엔진, OS, 기기, CPU 항목으로 나누어 보여 줍니다. 입력란의 기본값은 지금 열려 있는 브라우저의 User-Agent입니다.
사용 순서
- 입력란에는 현재 브라우저의 User-Agent가 미리 들어 있습니다. 다른 문자열을 분석하려면 내용을 지우고 붙여 넣습니다.
- Browser, Engine, OS, Device, CPU 카드에서 Name과 Version을 확인합니다.
- 값이 없으면 No browser name available 같은 안내 문구가 표시됩니다.
- 서버 로그나 요청 헤더에서 복사한 User-Agent도 같은 방식으로 분석합니다.
예시
Chrome 120.0.0.0 데스크톱 User-Agent를 넣으면 Browser의 Name은 Chrome, Version은 120.0.0.0, OS는 Windows 10으로 나옵니다. curl/8.4.0을 넣으면 브라우저와 OS 값이 모두 비어 안내 문구가 나옵니다.
한계
문자열 패턴으로 추정하므로 새로 나온 브라우저나 변형된 User-Agent는 잘못 분류될 수 있습니다. 브라우저가 User-Agent를 축소해 보내면 실제 버전과 다르게 나옵니다. 데스크톱 브라우저는 Device 정보가 대부분 비어 있어서 Device 카드에는 안내 문구만 나옵니다.
보안 주의
User-Agent는 클라이언트가 임의로 쓸 수 있는 값입니다. 로그에서 가져온 값을 근거로 접근을 막거나 봇을 판정할 때는 위조 가능성을 고려하고, 다른 신호와 함께 판단하세요.
배경 지식
User-Agent는 요청 헤더에 실리는 문자열로, 원래는 브라우저 종류와 버전, 운영체제 정보를 알리는 용도였습니다. 호환성을 위해 여러 브라우저 이름이 섞여 들어가면서 지금은 Mozilla/5.0으로 시작하는 긴 문자열이 되었습니다. 그래서 문자열을 직접 쪼개면 Chrome 문자열에 Safari 이름이 함께 있는 식으로 오판하기 쉽습니다.
ua-parser-js 같은 파서는 알려진 패턴 목록을 순서대로 대조해서 브라우저, 엔진(Blink, WebKit, Gecko), OS, 기기를 추정합니다. 패턴 목록은 계속 갱신되므로 같은 문자열이라도 라이브러리 버전에 따라 결과가 바뀔 수 있습니다. 최신 브라우저는 User-Agent Client Hints라는 별도 헤더로 정보를 나눠 주는 방향으로 가고 있어, 장기적으로는 User-Agent 문자열만으로 판단하기 어려워집니다.
자주 묻는 질문
Windows 11인데 OS 버전이 10으로 나오는 이유는 무엇인가요?
Windows 10과 11은 User-Agent에 같은 NT 10.0 값을 씁니다. 그래서 파서가 10으로 표시하는 경우가 많고, 11을 구분하려면 Client Hints의 platformVersion 값을 참고해야 합니다.
봇은 어떻게 구분하나요?
이 도구는 봇을 따로 판정하지 않습니다. curl이나 파이썬 라이브러리처럼 브라우저가 아닌 이름을 보내는 경우 Browser 칸이 비거나 낯선 이름이 나옵니다. 확실한 판단은 IP 대역, 요청 빈도 같은 다른 신호와 함께 해야 합니다.
User-Agent를 바꿔서 서버 동작을 확인하려면 어떻게 하나요?
브라우저 개발자 도구의 네트워크 설정에서 User-Agent를 재정의할 수 있습니다. curl에서는 -A 옵션으로 원하는 문자열을 보낼 수 있습니다. 이 도구는 문자열 분석만 하며 실제 요청을 보내지 않습니다.