-
Notifications
You must be signed in to change notification settings - Fork 0
9. 웹 로봇
HyoSang edited this page Apr 4, 2019
·
1 revision
- 웹 페이지를 한 개 가져오고, 그 페이지가 가리키는 모든 페이지를 가져오는 일을 재귀적으로 반복하는 로봇
- 루트 집합 : 크롤러가 시작하는 페이지
- 어디를 방문했는 지 기억하지 못하면 A-B-C-A-B-C와 같은 루프에 빠질 수 있어서 반드시 방문한 곳을 기억해야 한다.
- 루프 상태에 빠진 크롤러는 서버의 리소스를 과도하게 잡아먹어 일반 사용자 서비스에 영향을 미칠 수 있다.
- 각각이 분리된 한 대인 컴퓨터인 로봇들을 동시에 묶어서 farm을 구성해 크롤링을 함께 진행할 수 있다.
- 파일 시스템의 심볼릭 링크는 의도치 않는 순환을 만들어 크롤러를 루프에 빠뜨릴 수 있다.
- HTTP 요구사항이 적은 HTTP/1.0을 주로 이용한다.
- 대부분 신원 식별 헤더(특히 User-Agent)를 구현하고 전송한다.
- User-Agent, From, Accept, Referer 헤더를 구현하는것을 권장한다.
- 웹 관리자는 User-Agent를 확인해 로봇의 요청을 대응해야한다.
- 가상 docroot에 존재해야하는 파일
- robots.txt get 요청에 404로 응답한다면 로봇의 행동에 제약이 없는 서버라는 의미
- robots.txt get 요청에 401, 403으로 응답한다면 해당 로봇은 그 서버에 완전히 접근할 수 없다는 의미
- 한 줄을 여러 줄로 나누어 적는 것은 허용되지 않는다.
- 주석은 #을 이용한다
- 접근할 수 있는 로봇을 명시한다
- 존재하지 않으면 모든 로봇 접근을 허용한다.
- 대소문자를 구분하지 않으므로 주의해야한다.
- 로봇은 모든 규칙을 확인해야 한다.
HTTP 완벽 가이드
Learning HTTP/2
개발자가 반드시 정복해야할 객체지향과 디자인 패턴