User-Agent 파서/ 브라우저 · OS · 기기
User-Agent 문자열을 파싱하여 브라우저, 버전, OS, 기기 유형, 렌더링 엔진을 식별합니다. 현재 브라우저의 UA를 자동 입력.
User-Agent
예시
이 도구가 도움이 되었나요?
코드 예제
JavaScript (Browser)
// Current browser's UA
navigator.userAgent
// Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)...
// Modern: UA Client Hints (Chrome 90+)
const uaData = navigator.userAgentData;
uaData.brands // [{brand:'Chromium',version:'124'},...]
uaData.mobile // false
uaData.platform // 'macOS'
// High-entropy hints (requires user permission)
const hints = await uaData.getHighEntropyValues([
'platformVersion', 'architecture', 'model'
]);
hints.platformVersion // '14.0.0'
hints.architecture // 'arm'Node.js / Express
// npm install ua-parser-js
const UAParser = require('ua-parser-js');
app.get('/api', (req, res) => {
const ua = req.headers['user-agent'];
const parser = new UAParser(ua);
const result = parser.getResult();
// result.browser → { name: 'Chrome', version: '124.0' }
// result.os → { name: 'macOS', version: '14' }
// result.device → { type: 'mobile', model: 'iPhone' }
// result.engine → { name: 'Blink', version: '124.0' }
res.json(result);
});
// Next.js (App Router)
import { headers } from 'next/headers';
const ua = headers().get('user-agent') ?? '';Python
# pip install user-agents from user_agents import parse ua_string = ( 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 ' 'like Mac OS X) AppleWebKit/605.1.15 ' '(KHTML, like Gecko) Version/17.4.1 ' 'Mobile/15E148 Safari/604.1' ) ua = parse(ua_string) ua.browser.family // 'Mobile Safari' ua.browser.version // (17, 4, 1) ua.os.family // 'iOS' ua.os.version // (17, 4) ua.device.family // 'iPhone' ua.is_mobile // True ua.is_bot // False
Go
// go get github.com/mssola/useragent import "github.com/mssola/useragent" ua := useragent.New( "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" + " AppleWebKit/537.36 Chrome/124.0.0.0 Safari/537.36") ua.Mobile() // false ua.Bot() // false name, ver := ua.Browser() // name = "Chrome", ver = "124.0.0.0" ua.OS() // "Windows 10" ua.Platform() // "Windows"
자주 묻는 질문
User-Agent란?
User-Agent(UA)는 HTTP 요청 헤더의 필드로, 브라우저나 클라이언트가 서버에 자신의 신원을 설명하는 데 사용합니다 — 브라우저 유형, 버전, OS, 렌더링 엔진 포함. 서버는 UA를 기반으로 기기에 최적화된 콘텐츠를 제공할 수 있습니다.
왜 모든 브라우저가 Mozilla라고 주장하나요?
역사적 이유. Netscape Navigator가 Mozilla/x.x를 사용했고, IE가 Netscape용 콘텐츠를 받기 위해 같은 접두사를 채택했습니다. 이후 모든 브라우저가 이 패턴을 계승했습니다.
서버에서 User-Agent를 가져오는 방법은?
User-Agent 요청 헤더는 모든 HTTP 서버에서 사용 가능합니다. Node.js/Express: req.headers['user-agent']. Python Flask: request.headers.get('User-Agent'). Go: r.Header.Get("User-Agent").
Googlebot의 User-Agent는 어떻게 생겼나요?
Googlebot의 UA: Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html). UA는 위조 가능하므로 프로덕션 봇 감지에서는 UA 체크와 역방향 DNS 확인을 결합하세요.
User-Agent Client Hints란?
UA Client Hints(UA-CH)는 Chrome이 도입한 새 표준으로, 레거시 UA 문자열을 점진적으로 대체하고, 더 구조화된 기기 정보를 제공하며, 프라이버시 유출을 줄이는 것을 목표로 합니다.
User-Agent를 위조할 수 있나요?
네, UA는 완전히 클라이언트 제어 하에 있어 쉽게 수정할 수 있습니다. 보안 결정에 UA 체크에 의존하지 마세요. 모바일 감지와 봇 필터링은 IP 평판, 행동 패턴 등 다른 신호와 결합해야 합니다.