💜99_기타/03_웹 지식

🧨User Agent란, 사용자가 사용하고 있는 OS, Ver, 브라우저 정보를 포함하고 있다.

roomname-dev 2022. 12. 12.
728x90
반응형

🧨User Agent란, 사용자가 사용하고 있는 OS, Ver, 브라우저 정보를 포함하고 있다.

🙆‍기본 형태 : User-Agent: /

🙆‍**comment :

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36

1. Firefox

🎁Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion
  • Mozilla/5.0 : 접속한 브라우저가 Mozilla와 호환
  • platform : 브라우저가 실행되는 운영체제 환경 및 모바일확인 (window, mac, linux, android 등)
  • rv: geckoversion : Gecko 버전 (파이어폭스 렌더링 엔진)
  • Gecko/geckotrail : 브라우저가 Gecko 기반확인 데스크탑은 geckotrail값이 20100101스트링값으로 고정
  • Firefox/firefoxversion : 브라우저 파이어 폭스 여부 체크

2. Chrome

🎁Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36
  • 크롬은 파이어폭스는 비슷한 정보 출력 UA(리눅스 환경) + Chrome이름 + /ver정보
    모바일ios CriOS출력시 크럼을 뜻함
🎁Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/71.0.3578.89 Mobile/15E148 Safari/605.1
  • 안드로이드 삼성 브라우저접속시 크로미움 기반으로 Chrome, SamsungBrowser동시 출력
🎁Mozilla/5.0 (Linux; Android 8.0.0; SAMSUNG-SM-G950N/KSU3CRJ1 Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/8.2 Chrome/63.0.3239.111 Mobile Safari/537.36
  • Microsoft Edge도 크로미움 기반이라 chrome과 Edge가 출력
🎁Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134
  • 크로미움 기반 삼성브라우저 및 Edge를 뜻함

3. Safari

🎁Mozilla/5.0 (iPhone; CPU iPhone OS 13_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Mobile/15E148 Safari/604.1
  • 사파리는 크롬은 비슷한 정보를 출력 마지막 브라우저 정보에 Safari가 출력 & 모바일 접속시 Mobile출력

4. IE

🎁IE11 : Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; rv:11.0) like Gecko
  • IE로 접속시 trident 렌더링 엔진 명시

5. 브라우저 UserAgent정보 출력

  • javascript
<<script src="https://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">     
$( document ).ready(function() {

 // javascript에서 브라우저 정보출력
 const agent = window.navigator.userAgent.toLowerCase();
 alert(agent);

});

</script>
  • java
@RequestMapping(value = "/testbrowger.do", method = RequestMethod.GET)
public String testbrowger(HttpServletRequest request, Locale locale, Model model) {
	String browser 	 = "";
	String userAgent = request.getHeader("User-Agent");		
		
	if(userAgent.indexOf("Trident") > -1) {												// IE
		browser = "ie";
	} else if(userAgent.indexOf("Edge") > -1) {											// Edge
		browser = "edge";
	} else if(userAgent.indexOf("Whale") > -1) { 										// Naver Whale
		browser = "whale";
	} else if(userAgent.indexOf("Opera") > -1 || userAgent.indexOf("OPR") > -1) { 		// Opera
		browser = "opera";
	} else if(userAgent.indexOf("Firefox") > -1) { 										 // Firefox
		browser = "firefox";
	} else if(userAgent.indexOf("Safari") > -1 && userAgent.indexOf("Chrome") == -1 ) {	 // Safari
		browser = "safari";		
	} else if(userAgent.indexOf("Chrome") > -1) {										 // Chrome	
		browser = "chrome";
	}
		
	logger.info("---------------------------------------------");
	logger.info("User-Agent : " + userAgent);
	logger.info("Browser : " + browser);
	logger.info("---------------------------------------------");
		
	return browser;
}
728x90
반응형

댓글