재미있는 브라우저 user-agent 이야기

녹차괴물·2022년 7월 13일
0

자바스크립트에서 user-agent로 브라우저 정보를 조회하면 항상 혼란스러운 텍스트를 보게 된다.
예를 들자면 사파리 브라우저에서 userAgent 를 조회하면 이런 식으로 나온다.

navigator.userAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Safari/605.1.15"

그냥 사파리라고 하면 안 되나? 모질라 5.0 은 왜 있고 웹킷인데 무슨 게코랑 비슷하대?
크롬도 마찬가지로 자기가 모질라라느니 게코랑 비슷하다느니 하는 이상한 정보를 뱉어낸다.
궁금해져서 찾아보니 이런 글이 있었다. 링크

대충 번역

  • 먼 옛날 윈도우에 모자이크(mosaic) 브라우저가 있었다고 한다.

  • 라이벌인 넷스케이프 브라우저 팀은 모자이크 학살자(mosaic killer)를 표방하며 자신들을 모질라(mozilla)라 불렀다고 한다.

  • 넷스케이프는 frame 을 지원하지만 모자이크는 지원하지 않기 때문에 웹마스터들은 넷스케이프 브라우저에만 frame 을 포함해 더 좋은 컨텐츠를 보냈다.

  • 모질라는 이걸 두고 윈도우를 조롱하였다.

  • 넷스케이프 죽이기에 나선 윈도우는 새로 개발한 익스플로러의 유저 에이전트를 '나는 모질라입니다' 같이 보내기 시작했다.

    Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)

  • 웹마스터가 짜 둔 브라우저 감지 코드는 익스플로러가 넷스케이프인 줄 알고 좋은 컨텐츠를 보냈다.

  • 익플의 거짓말 정책은 성공적이었다. 넷스케이프는 결국 익플에 밀려나 죽었지만 모질라 재단은 게코(gecko) 랜더링 엔진을 새로 개발했다. 게코는 성능이 매우 좋았다.

  • 그러곤 게코를 탑재한 파이어폭스의 유저 에이전트를 '나는 모질라이며 게코이며 파이어폭스입니다' 같이 보냈다. 유일하게 정직한 브라우저였다.

    Mozilla/5.0 (Windows; U; Windows NT 5.1; sv-SE; rv:1.7.5) Gecko/20041108 Firefox/1.0

  • 다른 브라우저들이 게코 엔진을 갖다 쓰며 파폭인 척하기 시작했다. 이때부터 온갖 브라우저에 '나는 모질라이며 게코입니다' (Mozilla/5.0 Gecko/~~) 를 붙이는 전통이 시작됐다.

  • 웹마스터들은 또 브라우저 스니핑해서 모질라 게코가 들어가야만 좋은 컨텐츠를 보냈다.

  • 리눅스 커뮤니티는 KHTML 엔진을 개발했는데 게코만큼 좋은 페이지를 얻기 위해 '나는 모질라이며 컨커러이며 KHTML이며 게코...는 아니지만 비슷합니다' 같은 정보를 보냈다.

    Mozilla/5.0 (compatible; Konqueror/3.2; FreeBSD) (KHTML, like Gecko)

  • 애플은 KHTML을 포크해서 웹킷을 개발했는데 KHTML용 페이지를 얻기 위해 '나는 모질라이며 웹킷이며 KHTML 이며 게코와 유사하며 사파리입니다' 같은 정보를 보냈다.

    Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5

  • 크롬은 웹킷을 포크해서 개발했기 때문에 사파리용 페이지를 받고 싶었다. 그래서 나온게 '나는 모질라이며 웹킷이며 KHTML 이며 게코와 유사하며 크롬이며 사파리입니다' 라는 정보였다.

    Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13 ????

  • 속이는 사람만 있고 속는 사람은 없다. 개발자만 브라우저 체크하기 힘들어진 것이다.

0개의 댓글