sitelink1 | http://jsonobject.tistory.com/223 |
---|---|
sitelink2 | |
sitelink3 | |
sitelink4 | |
sitelink5 | |
sitelink6 |
개요
User-Agent는 HTTP 요청시 헤더에 담겨 오는 정보로 요청 클라이언트의 디바이스 및 브라우저 정보를 담고 있다. 국제적으로 표준화되어 있지 않아 엄격히 관리되고 있지 않으며 어떤 값을 넣어도 상관없기 때문에 완전히 신뢰할 수 있는 데이터는 아니지만 간단한 통계 및 디바이스 특성에 따른 분기 처리에 있어 가장 기초가 되는 데이터이기도 하다.
Java 진영의 User-Agent 파써 도구들
User-Agent 파써의 관건은 자체적으로 보유한 데이터베이스의 양이 중요하다. 현재 이순간에도 실시간으로 새로운 User-Agent 정보가 추가되고 있기 때문이다. 데이터베이스가 주기적으로 갱신되지 않으면 새로운 기기, 새로운 브라우저에 대한 감지가 되지 않을 가능성이 높다.
-
user-agent-utils: Java 진영 최초의 User-Agent 파써이다. 현재 개발 중단되었다.
-
UADetector: Java 진영에서 가장 잘 만들어진 User-Agent 파써이다. 아쉬운 점은 2014-10 부로 User-Agent 데이터베이스의 업데이트가 중단되었다. 본 글에서 사용할 라이브러리이다.
-
uap-java: 사용자들의 참여로 현재까지 계속 User-Agent 데이터베이스가 업데이트되고 있는 uap-core 기반의 파써이다. 데이터베이스의 주기적 갱신이라는 측면에서 가장 높은 점수를 주고 싶다.
UADetector, 의존성 추가
본 글에서 소개할 파써는 UADetector이다. 먼저 /build.gradle 파일에 아래와 같이 라이브러리 의존성을 추가한다.
dependencies {
compile group: 'net.sf.uadetector', name: 'uadetector-core', version: '0.9.22'
compile group: 'net.sf.uadetector', name: 'uadetector-resources', version: '2014.10'
}
사용 예
String userAgent = "Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36";
UserAgentStringParser parser = UADetectorServiceFactory.getResourceModuleParser();
parser.parse(userAgent).getDeviceCategory().getCategory();
parser.parse(userAgent).getOperatingSystem().getFamily();
parser.parse(userAgent).getType();
parser.parse(userAgent).getFamily();