본문 바로가기

오늘의 공부/서버

http 완벽가이드(12일차): 9장 웹로봇 궁금증 및 기록

 

*크롤링: 인터넷 검색엔진은 웹을 돌아다니면서 모든 문서를 모으기 위해 크롤러를 사용한다.

*크롤링을 하기 전에 출발지점을 정해야한다. 이 방문해야되는 url집합을 "root 집합" 이라 한다.

*크롤러는 html파싱을 하고 상대링크를 절대링크로 바꿔야한다.

*크롤러가 순환에 빠지면 네트워크를 다 차지해 웹 서버에 부담이 된다.

 

크롤러는 url이 방문했던 곳인지 빨리 판단하기 위해 검색트리, 해시 테이블을 사용한다.

 

*트리와 해시테이블:url을  빨리 추적하기 위해 사용하는 자료구조

 

*다른 url이라 할지라도 alias(별칭)으로 사용되는 경우도 있어 같은 리소스를 가리킬때도 있다.

 

url 정규화: url들을 표준형식으로 정규화하면 url들을 구분할수 있다.(어느정도는)

 

*스로틀링: 로봇이 웹 사이트에서 일정 시간 동안 가져올 수 있는 페이지의 숫자를 제한한다. 

               

*url 크기제한: 이 기법은 url이  특정 크기에 도달할 때마다 로그를 남김으로써, 특정 사이트에서 어떤일이 일어나는지 

                   관리하는 관리자에게는 좋다.

 

 

*User-agent, FROM, Accept 같은 식별헤더들을 사이트에게 보내주도록 크롤러를 설계한다.

 

 

*HTML 로봇 메타 태그 예시

 

<html>
<head>
	<meta name="robots" content="noindex,nofollow">
</head>
</html>

 *크로링 하면서 모니터링과 이상증상을 항상 주의할것

   

 

*검색엔진: 웹문서에 어떤 단어들이 존재하는지에 대한 색인을 생성한다. 

               수십억개의 웹페이지에서 문서의 위치를 알아내야한다. 그래서 복잡한 크롤러를 사용한다.

 

*현대적인 검색엔진의 아키텍처:  전세계 웹페이지에 대한 full-text indexes 라고 하는 로컬 DB를 생성한다.

                                          full-text indexes는 웹의 모든 문서들의 카탈로그 역할을 한다.

 

사용자는 질의를 검색엔진 게이트웨이로 보내는방법은

1)HTML 폼을 사용자가 채우고,

2)HTML메서드를 통해 게이트웨이에 보낸다.   

 

 

 

 

 

[궁금증]


시드목록?

*웹로봇을 만들떄 Host 헤더를 지원해야 된다는 것이 무슨말?

*robot.txt에서 url 접근허용에 관한것 

*Disallow 옵션