HTTP get 프로토콜과 분산형 로봇
크롤러는 부하를 저감・분산하기 위해서 수많은 기술을 사용하고 있습니다. 그 중에서 통신 부하를 줄이는 http get은 분산 처리를 통해 로 순회 효율을 향상시키는 분산형 로봇입니다.
널리 사용되는 통신 프로토콜
컴퓨터간의 정보취득 방법에는 다양한 것이 있지만, 크롤러가 웹페이지를 수집할 때에는 일반적으로 http get이라고 하는 프로토콜을 이용합니다. 이것은 웹브라우저에 의한 통상 브라우징을 행하는 경우에도 사용되는 일반적인 통신프로토콜입니다. 예를 들어 웹브라우저는 표시된 하이퍼 링크를 클릭할 때 이 http get에서 링크 된 페이지 내용을 읽어들입니다. 크롤러 UA도 프로그램의 기본은 웹브라우저와 변함없고, http get을 이용하여 웹 서버에서 취득하고 있습니다.
통신 부하를 줄이기 위한 http get 프로토콜 활용
http get은 다른 통신 프로토콜에 비해 자유롭고 부하 없이 정보를 얻을 수 있는 면에서 뛰어납니다. 그것은 http get이 “상태 정보” 를 필요로 하지 않는 통신 프로토콜이기 때문입니다. 상태 정보란 두 대의 컴퓨터에서 파일을 교환 할 때 쌍방간에 교환해야만 하는 “이력” 정보를 뜻합니다. 상태 정보를 교환해 보다 확실하고 안전하게 정보를 교환할 수 있지만, 반면 상호 간에 주고받는 정보가 부하가 되어 버리는 단점이 있습니다. 그런 점에서 http get에서는 상태 정보를 필요로 하지 않기 때문에, 웹 서버 상에서 공개되는 임의의 정보를 자유롭게 부하없이 취득할 수 있습니다.
예를 들어, 가전 제품의 개요에 대해 알고 싶을 때 점원에게 들으려면 자신의 개성과 관심사, 이해도를 상대에게 전한 다음 순서에 맞는 대화가 필요합니다. 그러나 카탈로그를 본다면 선반에 놓인 카탈로그의 좋아하는 페이지를 바로 읽을 수 있습니다. 이 예제의 카탈로그처럼 상태 정보가 필요없는 http get은 불특정 다수의 컴퓨터 간에 정보를 주고받는 웹에게 절차를 줄이고 부하를 감소시킨다는 측면에서 뛰어난 프로토콜입니다.
방대한 수의 크롤을 효율적으로 행하는 분산형 로봇
분산형 로봇이란 순회 효율을 높이기 위해서 복수의 시스템에서 크롤링을 부담하는 기술입니다. 검색엔진이 인덱스해야 하는 웹페이지 수와 그 정보량은 방대합니다만, 컴퓨터 하나의 시스템만으로 처리할 수 있는 정보량에는 한계가 있습니다. 그 때문에 여러 대의 컴퓨터, 여러 개의 시스템을 이용해서 분산 처리를 합니다.
분산 처리의 관리
분산 처리를 하려면 시스템 간의 적절한 역할 분담이 중요합니다. 예를 들어, 단순히 같은 시스템을 여러 개 준비하는 것만으로는 순회처의 중복도 생기고 크롤링은 비효율적으로 이루어지게 됩니다. 따라서 검색엔진은 개별 크롤러에 순회해야 할 웹페이지를 배분하는 관리자 역할의 시스템을 설치하고 있습니다. 관리자가 개별 크롤러에게 순회할 웹페이지를 지시하고 수집해 온 정보를 정리하여 여러 크롤러가 하나의 크롤링 장치로 기능할 수 있게 됩니다. 또한 상위 관리자에 의해서 여러 크롤링 장치를 통합할 수 있으며, 필요에 따라 여러 계층으로도 조립해 갈 수 있습니다.
이런 식으로 시스템 전체를 조립한 것으로, 많은 컴퓨터 시스템을 이용해서 효율적인 크롤링 분산을 할 수 있습니다.
순회처의 분담 방법
순회하는 웹페이지 분담을 결정 방법으로는 주로 다음과 같은 방법을 들 수 있습니다. 이런 방법들은 단독으로 사용하는 것이 아니라 검색 엔진마다 다른 다양한 방법과 고도로 함께 사용하고 있습니다.
지리적 분담
크롤러가 돌아야하는 웹페이지를 각각 물리적으로 나누는 방법입니다. 지역 범위를 결정하는 요소로는 사이트의 도메인 하위 도메인이나 언어, 서버가 위치한 국가 등을 생각할 수 있습니다.
미디어에 의한 분담
개별 크롤러가 수집하는 정보의 종류에 대해서 배분하는 방법입니다. 수집하는 정보의 분리 방법으로는 HTML, 이미지, pdf, MS Word 파일 등 다양합니다.