최근에 이상한 요청이 서버의 에러로그로 들어오게 되었다.

처음보는 류의 여러가지 에러였다.
이러한 에러는 원래 로그가 나오면 위의 에러페이지에 나오면 안되지만 원가 체크해야 할 것이 있다고 생각했다.
UserAgent는 HTTP요청을 보내는 디바이스와 브라우저 등 사용자 소프트웨어의 식별 정보를 담고있는 request header의 한 종류이다.
기본 형태는 다음과 같다.
User-Agent : <product>/<product-version><commnet>
보통 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
user agent에서 commnet를 궝하는 형식에 대해 MDN에서는 브라우저를 기준으로 형식을 소개하고 이다. 보통 Mozilla정보/버전 + 운영체제 정보 + 렌더링 정보 + 브라우저 형태로 노출 된다.
Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion
Mozilla/5.0: 접속한 브라우저가 Mozilla와 호환 된다는 의미. 거의 모든 브라우저가 이렇게 표시된다.
platform: 브라우저가 실행되는 운영체제 환경(windos,mac,linux,android) 그리고 모바일인지 여부
rv:geckoversion: Gecko버전(파이어폭스의 렌다링 엔진)
Gecko/geckotrail: 브라우저가 Gecko기반인지 여부. 데스크탑일 경우 geckotrail은 20100101이라는 스트링값으로 고정된다.
Filefox/fireversion: 브라우저가 파이어폭스라는 의미, 그리고 파이어폭스 버전
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36
크롬은 파이어폭스와 비슷한 형식이다. 위 UA는 리눅스 환경이라는 의미이고, 뒤에 Chrome이라는 이름이 붙고 버전이 명시된다.
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
모바일에서는 조금 다른데, ios에서는 CriOS가 크롬을 뜻한다.
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
안드로이드 삼성 브라우저에서 접속한 경우 크로미움 기반이어서, 위와 같이 나온다.(chrome과 SamsungBrowser가 같이 노출된다)
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
Microsoft Edge도 크로미움 기반이라 chrome과 Edge가 같이 노출된다.
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이라고 같이 뜬다.
IE11 : Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; rv:11.0) like Gecko
IE로 접속시에는 위처럼 trident렌더링 엔진이 명시된다.
별게 있구만, 그래서 에러의 원인과 해결방법이 무엇인가여