
248
HTTP
2
부 HTTP 아키텍처
9.1
크롤러와 크롤링
웹 크롤러는, 먼저 웹페이지를 한 개 가져오고, 그 다음 그 페이지가 가리키는 모든
웹페이지를 가져오고, 다시 그 페이지들이 가리키는 모든 웹페이지들을 가져오는,
이러한 일을 재귀적으로 반복하는 방식으로 웹을 순회하는 로봇이다. 웹 링크를 재
귀적으로 따라가는 로봇을 크롤러 혹은 스파이더라고 부르는데, HTML 하이퍼링크
들로 만들어진 웹을 따라 ‘기어다니기(crawl)’ 때문이다.
인터넷 검색엔진은 웹을 돌아다니면서 그들이 만나는 모든 문서를 끌어오기 위
해 크롤러를 사용한다. 이 문서들은 나중에 처리되어 검색 가능한 데이터베이스로
만들어지는데, 이는 사용자들이 특정 단어를 포함한 문서를 찾을 수 있게 해준다.
찾아서 가져와야 하는 페이지들이 수십억 개나 되다 보니 필연적으로 이들 검색엔
진 스파이더들은 가장 복잡한 로봇들 중 하나가 되었다. 크롤러들이 어떻게 동작하
는지 더 자세히 살펴보자.
9.1.1
어디에서 시작하는가: ‘루트 집합’
굶주린 크롤러를 풀어놓기 전에, 우선 출발지점을 주어야 한다. 크롤러가 방문을
시작하는 URL들의 초기 집합은 루트 집합(root set)이라고 불린다. 루트 집합을 고
를 때, 모든 링크를 크롤링하면 결과적으로 관심 있는 웹페이지들의 대부분을 가져
오게 될 수 있도록 ...