웹로그에 남은 Googlebot 등의 HTTP User-agent 정리

검색엔진 2006. 12. 28. 00:00

웹로봇, RSS리더, 웹 브라우저 등의 웹문서를 로드하는 프로그램은 몇개의 RFC 표준에 의해 User-agent를 HTTP Request Header에 적도록 되어 있다. 권고사항이므로 꼭 지키지는 않으며, 지킬 의무도 없긴 하다. 하지만 간혹 웹서버 설정에 의해 특정 User-agent에 대해서 또는 특정 User-agent에게만 별도의 웹페이지를 전송하도록 만들어진 사이트도 있기 때문에 가급적 고유의 User-agent(이하 UA)값을 적어서 Request한다.

내 블로그 웹서버에서 남긴 HTTP로그를 분석해서 몇가지 자주 들르는 UA값을 소개해 본다. 순서의 기준은 딱 하나뿐인다. 다음을 1번에 놓는다는것;;;;

우선 몇가지 잘 알려진 검색업체의 로봇들. 대체로 UA명을 이용해 로봇 배제 표준 방법에 따라 수집을 거부할 수는 있지만 이 배제표준이란게 방문을 거부할 수는 없다. 거부하는 사이트라는 사실은 적어도 robots.txt파일에 대한 방문 1회 이상을 해야 할수 있기 때문이다.
웹검색 업체의 웹문서 수집 소프트웨어를 로봇, 웹로봇이라고도 하고 크롤러(crawler), 그래버(grabber), 스파이더(spider)라고도 한다. 여기는 내 블로그 웹서버 로그에 남은 UA값을 위주로 소개했고, 더 많은 UA명(정확한 UA값 말고)은 http://www.wikipedia.org/robots.txt를 보면 알수 있다^^

여담인데..
흔히 robots.txt에 대해 잘못 알고 있는 것중 하나가 crawl-delay: 1 sec 이게 표준이라고 생각하는거다. 이거 표준 아니다;;; robots.txt에 사용할수 있는 key는 User-agent와 disallow 뿐이다. allow도 표준이 아니다. robots.txt 자체가 규약이 아니라 제안이기 때문에 각 로봇마다 robots.txt파일의 해석에 대한 확장기능을 마련한 것들이 가끔 있는데, crawl-delay나 allow등이 그런 것이다. 자세한 내용은 http://www.robotstxt.org/에서^^;

  1. 다음 : Mozilla/4.0 (compatible; MSIE is not me; DAUMOA/1.0.0; DAUM Web Robot; Daum Communications Corp., Korea)

    Mozilla compatible을 선언하고 DAUMOA라는 UA명을 쓰는 웹크롤러. MSIE is not me라고 적은 부분이 왜 있는지는 세상에서 딱 3명만 안다..ㅎㅎ;;
    UA 확장 문자열의 내용은 조만간 바뀔지도 모르나, DAUMOA또는 EDI라는 이름으로 robots.txt에 사용할 수 있다는건 변하지 않는다. EDI는 DAUMOA의 개발버전의 UA명이다.(프로젝트코드라고도 하고..ㅎㅎ;;;)
    (설마 대외비는 아니겠지? ㅡㅡㅋ)
    아직 로봇 소개 페이지가 공개되지 않았다. 곧 공개될 예정. http://www.robotstxt.org에서 제안하는 로봇 배제 표준을 준수한다.

  2. 구글 : Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

    구글 웹검색을 위한 웹크롤러. "구글봇"으로 알려져 있다.
    역시 Mozilla compatible을 선언하고 Googlebot이라는 UA명을 쓴다.
    역시 robotstxt 표준을 준수한다. 소개페이지도 잘 만들어져 있다.

  3. 구글 : Feedfetcher-Google; (+http://www.google.com/feedfetcher.html)

    구글의 개인화된 홈, 구글 리더 등에 Feed를 등록하면 이 로봇이 수집한다. 이 로봇은 robotstxt denial을 준수하지 않는데, 이는 feed를 수집해오도록 요청한 사람의 요청이 우선하기 때문이라고 적혀있다.

  4. 구글 : Mediapartners-Google/2.1

    구글 AdSense를 위한 웹크롤러. 이 로봇이 문서를 수집하여 키워드를 추출, 어떤 광고를 게재할지를 결정하는데 쓰인다. robotstxt표준을 준수하기 때문에 User-agent: *을 써서 로봇을 거부하면 AdSense노출에 문제가 생길수 있다. 웹검색 인덱싱은 거부하면서 AdSense를 사용하려면 User-agent: *을 거부하고 User-agent: Mediapartners-Google 에 대해 허용하면된다.

  5. 야후 : Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp )

    야후 웹검색 크롤러. 역시 Mozilla compatible을 선언하고 Slurp라는 UA명을 쓴다. robotstxt 표준을 준수한다.
    로봇 소개 페이지도 잘 만들어져 있다.

  6. 네이버 : Mozilla/4.0 (compatible; NaverBot/1.0; http://help.naver.com/delete_main.asp)

    네이버의 웹검색용 크롤러. Mozilla compatible을 선언하고, NaverBot이라는 UA명을 쓴다.
    로봇 소개 페이지가 잘 준비되어 있으며, robotstxt 배제표준을 준수한다. 인덱스 삭제요청을 할수 있도록 만들어 두었다.

  7. Microsoft : msnbot-media/1.0 (+http://search.msn.com/msnbot.htm)

    Mozilla의 이름을 걸지 않고 직접 msnbot-media라는 UA명을 전면에 내세웠다. 무슨 자신감일까;;; 소개페이지가 준비되어 있고, MSNBot이라는 UA명으로 배제표준을 준수한다.

  8. Microsoft : msnbot/1.0 (+http://search.msn.com/msnbot.htm)

    M$의 또다른 로봇. UA명이 그냥 msnbot이다. 무슨 차이인지는 잘 모르겠다. 두가지 M$로봇 모두 MSNBot이라는 UA명으로 배제표준을 준수한다.

  9. 한RSS : HanRSS/1.0 (http://www.hanrss.com; 39 subscribers)

    대표적인 한글 Feed 구독 서비스 한 RSS의 Feed 크롤러. Feed크롤러의 특성상 배제표준을 준수하지 않을거다.
    몇명이 구독중인지도 보여준다.

  10. 올블로그: Allblog.net RssSync4 (I Love Bluecat)

    올블로그의 Feed크롤러. 올블에 Feed를 등록하면 그때부터 주기적으로 이 로봇이 블로그를 방문한다. UA명이 모호하다.
    아마 배제표준을 지키지 않는 것으로 보이는데, 구글의 Feedfetcher와 같은 이유일 것으로 생각된다. feed 크롤러는 배제표준 지키면 메타블로그의 역할 수행이 좀 어렵다;;

  11. 이올린 : Mozilla/4.0 (compatible; Eolin)

    이올린은 Ping으로만 게시물을 업데이트 하는줄 알았는데, 크롤링도 하는가보다. 뭔가 궁여지책으로 결정된 UA명이 느껴진다. UA명은 Eolin이다.

  12. Colcol : Colcol Meta(colcol.net) ColRSS V5.0 by.Mog422

    Colcol이라는 국내 블로그 메타 사이트인데, 잘 기억 안나는데 여기도 등록을 한적이 있는가보다. 꽤나 열심히 긁어간다.
    내가 찾지 못한 것인지, 로봇 소개 페이지나 로봇 배제 표준 준수여부도 알수 없다. UA명이 모호하다.

  13. 플랜티넷 : PlantyNet_WebRobot_V1.9 dhkang@plantynet.com

    왜 크롤링을 하는지 잘 모르겠다. 하여간 플랜티넷에서도 크롤링을 한다. http://plantynet.com/
    배제표준은 지킨다. 근데 어떤 UA값으로 막아야 하는건지..ㅡㅡㅋ 크롤링 목적과 크롤링 데이터를 서비스하는곳 등에 대해 문의 해둔 상태.

다음은 Feed 리더. 이것들을 로봇이라 할수 있는지 잘 모르겠다. 로봇의 성격이 짙은 Feed 구독 서비스 등의 크롤러는 위에서 소개했다.

  1. 연모 : YeonMo/5.6.0.0 (compatible; MSIE 6.0; Windows NT 5.1; SV2)

    왜 저기다가 compatible을 써놨을까..ㅡㅡㅋ

  2. Free RSS Reader : NewsGator/2.0 (http://www.newsgator.com ; Microsoft Windows NT 5.1.2600.0; .NET CLR 1.1.4322.573)

    이거 역시 Feed구독 서비스인데 어떤분이 이걸 쓰시는지..ㅎㅎ;;

  3. Protopage : Protopage/3.0 (http://www.protopage.com )

    Protopage라는 개인화 홈페이지 서비스인가본데, 누군가 여기에 RSS피드를 등록하면 그때부터 요녀석이 방문한다.

  4. 위자드닷컴 : WZD.COM Rss Sync

    역시 개인화 홈페이지 서비스인 위자드 닷컴. 위와 같다.

다음은 잘 알려진 브라우저

  1. Microsoft Internet Explorer : Mozilla/x.x (compatible; MSIE x.x; Windows xx; {extra-information})

    다양한 윈도우 버전과 IE빌드 만큼이나 다양한 UA로 들어온다. 위의 패턴은 항상 지키는것으로 보인다.

  2. Firefox2 : Mozilla/5.0 (Windows; U; Windows NT 5.1; ko; rv:1.8.1) Gecko/20061010 Firefox/2.0

    요즘 파이어폭스는 거의(전부?) 이 UA다.

  3. Opera/9.02 (Windows NT 5.1; U; ko)

    오페라 쓰는 분들도 가끔 온다.

  4. Mozilla/5.0 (Macintosh; U; Intel Mac OS X; ko-kr) AppleWebKit/418.9.1 (KHTML, like Gecko) Safari/419.3

    맥에서 사파리 쓰는 분들도 꽤 자주 온다.

다음은 정체가 불분명한데 자주 들어오는 UA

  1. 앳파일 : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; \xbe\xdc\xc6\xc4\xc0\xcf (atfile.com))

    이 UA의 정체가 불분명하다. 헥사코드로 펼쳐진 저 부분은 "앳파일"의 euckr coding 값과 같다. 행동으로 봐서는 브라우저 같은데..

  2. Unknown : DoA/1.1

    이건 정말 난감한 UA다. DoA는 워낙 흔한 이니셜이라 검색도 잘 안된다. 브라우저의 종류같다는 느낌이 드는게, referer값을 갖고 있다. 근데, 다운로드 해가는 파일을 보면 행동하는건 딱 로봇이다. 모르겠다.

  3. Unknown : Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; DigExt)

    이건 더 난감하다. MSIE처럼 생겼으나 모질라버전부분과 OS명 부분 MSIE버전 부분 등이 몇가지 다른것도 들어온다. 인터넷상의 각종 게시판이나 포럼등에서는 정확한 정체는 모른채 MSIE의 한 branch버전 쯤으로 추측하고 있다. 툴바등의 IE플러그인이 만들어 내는 것인지도 모르겠다.

  4. Unknown : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; i-NavFourF)

    이건 VeriSign의 IE플러그인이 만드는 UA값이라고 한다.

이 외에도 많은 UA값을 가진 HTTP Client들이 존재하겠지만 적어도 4시간동안 이곳을 찾은 UA값은 대략 이정도다.

정리도 빡세다..ㅠㅠ


덧. nmind님의 오늘의 링크(2006.12.28)에 이 포스팅이 걸리는 영광이..^^
: