본문으로 건너뛰기

User-Agent Client Hints와 UA 축소

Chromium 기반 브라우저는 축소된 User-Agent 문자열을 보냅니다. 기기를 가장 정확하게 식별하던 세부 정보는 고정 값으로 바뀌었고, 정확한 데이터는 사이트가 직접 요청해야 하는 User-Agent Client Hints(UA-CH)로 옮겨졌습니다. 이 가이드는 기존 Android용 Chrome 문자열과 축소된 문자열을 나란히 파싱합니다.

실제 예시

기존 Android용 Chrome(축소 이전)
Mozilla/5.0 (Linux; Android 12; SM-G991B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.88 Mobile Safari/537.36
브라우저
Chrome 99.0.4844.88
엔진
Blink
운영 체제
Android 12
기기 유형
모바일
기기
Samsung SM-G991B
CPU 아키텍처
알 수 없음
봇 / 크롤러
아니오
축소된 Android용 Chrome
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Mobile Safari/537.36
브라우저
Chrome 120.0.0.0
엔진
Blink
운영 체제
Android 10
기기 유형
모바일
기기
K
CPU 아키텍처
알 수 없음
봇 / 크롤러
아니오

기존 문자열에는 Android 12, Samsung 모델 SM-G991B, 전체 버전 99.0.4844.88이 드러납니다. 축소된 문자열에서 Android 10과 모델 K는 모든 Android 기기가 보내는 자리 표시자이며, 버전은 .0.0.0으로 끝납니다. 파서는 문자열에 적힌 그대로(Android 10, 모델 K) 보고하므로, 실제 정보를 담고 있는 것은 메이저 버전 120과 Mobile 토큰뿐입니다.

Chromium 브라우저가 기본으로 보내는 낮은 엔트로피 힌트와 추가 힌트를 요청하는 Accept-CH 응답 헤더
Sec-CH-UA: "Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"
Sec-CH-UA-Mobile: ?1
Sec-CH-UA-Platform: "Android"

Accept-CH: Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List

핵심 규칙

  • 축소된 Chrome 문자열은 메이저 버전만 유지하며, 마이너, 빌드, 패치 버전은 항상 0.0.0입니다.
  • Android에서는 OS 버전이 10으로 고정되고 기기 모델은 K로 대체됩니다. 데스크톱에서는 플랫폼이 Windows NT 10.0; Win64; x64, Macintosh; Intel Mac OS X 10_15_7 또는 X11; Linux x86_64 같은 값으로 고정됩니다.
  • HTTPS에서 Chromium 브라우저는 기본적으로 세 가지 낮은 엔트로피 힌트를 보냅니다: Sec-CH-UA(브랜드와 메이저 버전), Sec-CH-UA-Mobile, Sec-CH-UA-Platform.
  • Sec-CH-UA-Platform-Version, Sec-CH-UA-Model, Sec-CH-UA-Full-Version-List 같은 상세 힌트는 서버가 Accept-CH 응답 헤더로 요청한 뒤에만 전송됩니다. JavaScript에서는 navigator.userAgentData.getHighEntropyValues()를 사용하세요.
  • 브랜드 목록에는 “Not_A Brand” 같은 의도적인 가짜 “GREASE” 항목이 포함됩니다. 헤더 전체를 비교하지 말고 필요한 브랜드를 찾으세요.
  • Windows 11도 User-Agent 문자열에서는 여전히 Windows NT 10.0을 보냅니다. Sec-CH-UA-Platform-Version이 13.0.0 이상이면 Windows 11입니다.
  • Client Hints는 Chromium 기능이므로 다른 브라우저를 위해 User-Agent 기반 대체 수단을 유지하세요. 이 파서는 Client Hints가 아닌 User-Agent 문자열만 읽습니다.

더 많은 User Agent 가이드