Sec-CH-UA
요청 헤더 Client Hints

개요

Sec-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 항목. 파서가 임의 브랜드도 견디도록 넣는 의도적 가짜 항목(값은 브라우저마다 다름).

실무 참고

관련 헤더

관련 상태코드

스펙 근거