Sec-CH-UASec-CH-UA는 User-Agent Client Hints의 대표 헤더로, 브라우저의 브랜드와 주요 버전 목록을 구조화된 형태로 전달합니다. 길고 위조되기 쉬운 전통적 User-Agent 문자열을 대체하기 위한, 저엔트로피(기본 전송) 힌트입니다.
값은 구조화 필드 목록으로, 각 항목이 "브랜드";v="버전" 쌍입니다. 예: "Chromium";v="120", "Google Chrome";v="120", "Not?A_Brand";v="24". 여기서 Not?A_Brand 같은 항목은 GREASE로, 서버 파서가 알 수 없는 브랜드도 무시하지 않고 처리하도록 일부러 넣는 가짜 항목입니다. 그 문자열·구두점·순서는 브라우저·버전마다 달라질 수 있으므로 하드코딩 매칭은 피해야 합니다.
Sec-CH-UA는 저엔트로피 힌트라 Accept-CH 옵트인 없이도 기본으로 전송됩니다. 다만 담기는 것은 브랜드와 '주요 버전'뿐이며, 전체 버전·플랫폼 버전·기기 모델 같은 고엔트로피 정보는 각각 Sec-CH-UA-Full-Version-List·Sec-CH-UA-Platform-Version·Sec-CH-UA-Model 헤더로 분리되어 있어 Accept-CH로 명시 요청해야 받습니다.
Sec- 접두사가 붙은 힌트는 브라우저가 관리하는 '금지된 헤더'라 JavaScript로 설정·조작할 수 없어 신뢰성이 높습니다. 서버는 이 값을 파싱해 기능 분기·통계에 쓰되, 정확한 버전 비교가 필요하면 major 버전만으로 판단하거나 Full-Version-List를 옵트인하세요.
Sec-CH-UA: "<brand>";v="<version>"[, "<brand>";v="<version>"]*e.g. Sec-CH-UA: "Chromium";v="120", "Google Chrome";v="120", "Not?A_Brand";v="24"
"<brand>";v="<version>" | 브랜드 이름과 주요(major) 버전의 쌍. 여러 브랜드를 쉼표로 나열. |
"Not?A_Brand";v="..." | GREASE 항목. 파서가 임의 브랜드도 견디도록 넣는 의도적 가짜 항목(값은 브라우저마다 다름). |