User-Agent 문자열에서 브라우저, 렌더링 엔진, 운영체제, 기기 유형을 읽어 내고, 지금 쓰는 브라우저가 자신에 대해 무엇을 알려 주는지 확인합니다.
브라우저 또는 클라이언트
렌더링 엔진
운영체제
기기 유형
CPU 아키텍처(문자열에 있는 경우)
이 문자열로 알 수 없는 것
이 브라우저가 알려 주는 정보
이 값은 위의 문자열이 아니라 지금 사용 중인 브라우저에서 읽은 것입니다. 이 페이지 밖으로 나가지 않습니다.
사용 중인 브라우저의 속성
속성
값
Client Hints 브랜드
Client Hints 플랫폼
언어
화면 크기
기기 픽셀 비율
시간대
쿠키
WebAssembly
Web Crypto
이 도구에 대하여
User-Agent 문자열이란
거의 모든 HTTP 요청에는 클라이언트가 자신을 밝히는 User-Agent 헤더가 들어 있습니다. 브라우저들은 경쟁 브라우저용으로 만든 사이트에서도 제대로 동작하도록 수십 년 동안 서로의 이름을 이 문자열에 덧붙여 왔습니다. 그래서 Chrome의 문자열은 Mozilla/5.0으로 시작하고 AppleWebKit, KHTML, like Gecko, Safari를 언급하며, Edge와 Opera는 Chrome의 문자열 끝에 Edg/나 OPR/를 붙여 보냅니다.
따라서 파서는 가장 구체적인 토큰부터 가장 일반적인 토큰까지 정해진 순서로 검사해야 합니다. 이 도구는 먼저 봇과 HTTP 라이브러리를, 다음으로 자체 토큰을 추가하는 브라우저를 확인하고, 마지막으로 다른 많은 브라우저가 토큰을 그대로 따라 쓰는 Chrome과 Safari를 확인합니다.
Chromium이 문자열 대부분을 고정한 이유
이 문자열은 모든 요청과 함께 모든 서버로 전송되며, 그 세부 정보가 사용자 핑거프린팅에 쓰였습니다. 그래서 Chrome이 문자열을 축소했고 다른 Chromium 기반 브라우저도 뒤따랐습니다. 이제 버전은 메이저 번호만 실제 값인 131.0.0.0 형태로 전송되고, 플랫폼 부분은 실제 시스템과 관계없이 Windows NT 10.0; Win64; x64나 Android 10; K 같은 고정 값입니다.
세부 정보가 필요한 사이트는 User-Agent Client Hints, 즉 Sec-CH-UA 요청 헤더와 JavaScript의 navigator.userAgentData를 통해 요청해야 합니다. 결과 아래의 표는 사용 중인 브라우저가 이 값을 제공하면 함께 보여 줍니다.
기능 감지를 우선하세요
이 문자열은 일부가 고정되어 있고, 다른 브라우저를 흉내 내며, 클라이언트가 아무 값으로나 바꿀 수 있으므로 어떤 코드를 실행할지 결정하는 근거로는 적합하지 않습니다. 대신 기능 자체를 검사하세요. JavaScript에서는 'share' in navigator, CSS에서는 @supports를 쓰면 됩니다. 그러면 처음 보는 브라우저나 아직 나오지 않은 버전에서도 올바른 결과를 얻습니다.
그래도 통계를 내거나, 로그에서 크롤러와 사람을 구분하거나, 특정 브라우저 버전의 알려진 버그를 우회할 때는 이 문자열을 읽는 것이 합리적입니다.
자주 묻는 질문
Chrome 버전이 왜 .0.0.0으로 끝나나요?
Chrome과 다른 Chromium 기반 브라우저는 핑거프린팅을 줄이기 위해 User-Agent 문자열을 축소합니다. 메이저 버전만 전송되고 마이너, 빌드, 패치 번호는 0으로 바뀝니다. 전체 버전은 User-Agent Client Hints로 얻을 수 있습니다.
User-Agent 문자열로 Brave와 Chrome을 구분할 수 있나요?
아니요. Brave는 의도적으로 Chrome과 같은 문자열을 보내므로, 파서는 Chromium 기반 브라우저라는 것까지만 알 수 있습니다. 자체 토큰을 추가하지 않는 다른 브라우저도 마찬가지입니다.
Mac에서 왜 macOS 10.15.7로 표시되나요?
Safari, Chrome, Firefox는 문자열 속 macOS 버전을 10.15에서 더 이상 갱신하지 않으므로, 이후의 모든 macOS 릴리스도 이 번호를 보고합니다. 또한 Apple 실리콘 Mac에서도 문자열에는 Intel이라고 표시됩니다.
User-Agent 문자열은 위조할 수 있나요?
네. 어떤 클라이언트든 원하는 문자열을 보낼 수 있고, 많은 봇이 일반 브라우저의 문자열을 보냅니다. 보안 판단의 근거로 삼지 마세요. Googlebot 같은 크롤러를 확인하려면 운영자가 문서에서 안내하는 대로 요청이 온 주소를 확인하세요.
붙여 넣은 문자열이 서버로 전송되나요?
아니요. 분석은 브라우저 탭의 JavaScript가 처리하며, 이 도구는 이 문자열로 네트워크 요청을 보내지 않습니다.