[http완벽가이드] 9장 웹로봇

19
9 장 . 장 장장 HTTP 장장 장장장 - 장장장장장장 - 장장장

Upload: minchul-jung

Post on 20-Feb-2017

275 views

Category:

Software


0 download

TRANSCRIPT

Page 1: [Http완벽가이드] 9장 웹로봇

9 장 . 웹 로봇HTTP 완벽 가이드

- 아꿈사스터디 - 정민철

Page 2: [Http완벽가이드] 9장 웹로봇

텍스트

웹 로봇이란 ?

▸ 사람과의 상호작용 없이 연속된 웹 트랜젝션들을 자동으로 수행하는 프로그램▸ 로봇의 예 )

▸ 주식 그래프 로봇▸ 웹 통계 조사로봇▸ 검색엔진 로봇▸ 가격비교 로봇

Page 3: [Http완벽가이드] 9장 웹로봇

텍스트

크롤러와 크롤링 - 동작방식▸ 웹페이지를 가져오고 그 페이지의 링크를 따라가서 다시 웹 페이지를 가져오는 것을 반복하는 방식으로 웹을 순회하는 로봇▸ 루트집합 ( 크롤러가 방문을 시작하는 URL 집합 ) 에서 탐색시작▸ 페이지에서 링크 추출 및 다음 순회목록에 추가▸ 상대링크를 절대링크로 변환▸ 순환을 피하기위해 방문페이지 저장

Page 4: [Http완벽가이드] 9장 웹로봇

텍스트

크롤러와 크롤링 - 순환

Page 5: [Http완벽가이드] 9장 웹로봇

텍스트

크롤러와 크롤링 - 루프와 중복▸ 순환이 해로운 이유

▸ 크롤러를 루프에 빠뜨려서 시간과 자원을 허비하게 만듬▸ 웹 서버에 부담을 가중시킴▸ 쓸모없는 중복된 크롤링 결과

▸ 순환을 피하기위해 방문을 기록▸ 속도와 메모리 사용면에서 효과적이어야 함▸ 트리와 해시테이블 , 느슨한 존재 비트맵 , 체크포인트 , 파티셔닝 등 사용

Page 6: [Http완벽가이드] 9장 웹로봇

텍스트

크롤러와 크롤링 - URL 정규화▸ alias 와 로봇 순환 : alias 는 주소는 다르지만 같은 리소스를 가짐▸ URL 정규화를 통해 alias 를 회피

▸ 포트번호 추가 , 이스케이핑 문자를 실제문자로 대체 , # 태그 제거▸ 해결할 수 없는 문제 : 대소문자 , 색인정보 , 가상호스팅

Page 7: [Http완벽가이드] 9장 웹로봇

텍스트

크롤러와 크롤링 - 파일 시스템 링크 순환

Page 8: [Http완벽가이드] 9장 웹로봇

텍스트

동적 가상 웹 공간▸ 악의적인 웹 마스터들이 로봇을 함정에 빠트리기위해 의도적으로 복잡한 루프를 만들 수 있음▸ 자신도 모르게 심볼릭 링크나 동적 컨텐츠를 통해 크롤러 함정을 만들 수 있음

Page 9: [Http완벽가이드] 9장 웹로봇

텍스트

루프와 중복 피하기▸ 완벽한 방법은 없음▸ 잘 설계된 로봇은 휴리스틱 집합 사용

▸ 휴리스틱은 유효한 컨텐츠를 필터링하는 문제가 있음▸ 올바르게 동작하기위해 사용하는 기법들

▸ URL 정규화 , 너비우선 크롤링▸ 스로틀링 : 일정 시간동안 가져올 수 있는 페이지 수 제한▸ URL 크기제한 , URL/ 사이트 블랙리스트▸ 패턴발견 , 콘텐츠 지문 , 사람의 모니터링

Page 10: [Http완벽가이드] 9장 웹로봇

텍스트

로봇의 HTTP

▸ 로봇은 필요한 HTTP 를 최소한으로 구현 => 대부분 HTTP/1.0 사용▸ 최소한의 요청헤더 사용

=> User-Agent, From, Accept, Referer▸ 가상 호스팅을 지원하지 않을 경우 URL 의 잘못된 컨텐츠 받음▸ 조건부 요청 : 변경되었을 때만 가져오기 ( 캐싱과 비슷함 )▸ 응답 다루기 : 상태코드 , 엔터티▸ 웹사이트 관리자는 최소한 로봇이 방문해 컨텐츠를 얻을 수 없어 당황하게 만들지 말아야 함

Page 11: [Http완벽가이드] 9장 웹로봇

텍스트

부적절하게 동작하는 로봇들▸ 폭주하는 로봇 : 서버에 과부하 유발▸ 오래된 URL: 존재하지 않는 URL 에 요청해 에러 및 자원 낭비▸ 길고 잘못된 URL▸ 호기심이 지나친 로봇 : 사적 데이터 수집에 주의▸ 동적 게이트웨이 접근 : 사이트에 계산부하 가중

Page 12: [Http완벽가이드] 9장 웹로봇

텍스트

로봇 차단하기▸ Robot Exclusion Standard: http://www.robotstxt.org/

▸ 0.0, 1.0, 2.0 이 있지만 대부분 0.0, 1.0 사용▸ robots.txt : 어떤 로봇이 서버의 어떤 부분에 접근할 수 있는지 명시▸ 로봇은 서버 접속 시 robots.txt 를 읽어 권한 확인▸ HTTP 응답 코드에 따라 다른 반응을 해야 함

Page 13: [Http완벽가이드] 9장 웹로봇

텍스트

ROBOTS.TXT 파일 포멧▸ User-Agent : 규칙적용 로봇 이름 명시▸ Disallow : 접근금지 할 폴더 규칙▸ Allow: 접근 허용할 폴더 규칙▸ robots.txt 는 만료시기까지 caching 해야 함

Page 14: [Http완벽가이드] 9장 웹로봇

텍스트

HTML 로봇제어 META 태그▸ robots.txt 는 개별 페이지에 대해 제어하기 어려움

=> HTML 로봇제어 META 태그 사용▸ 개별 HTML 문서에 robot 제어 지정▸ HEAD 섹션에 나타나야 함▸ 지시들이 중복되거나 충돌되면 안됨

Page 15: [Http완벽가이드] 9장 웹로봇

텍스트

로봇 에티켓▸ Guidelines for Robot Writers

http://www.robotstxt.org/guidelines.html▸ 신원식별▸ 동작▸ 스스로를 제한▸ 루프와 중복 견뎌내기 , 그 외의 문제들▸ 확장성▸ 신뢰성▸ 소통

Page 16: [Http완벽가이드] 9장 웹로봇

검색엔진▸ 웹 크롤러는 검색엔진에 웹 문서 제공▸ 검색엔진은 받은 문서에대한 색인 생성▸ 인터넷의 큰 규모로 인해 웹 전체를 크롤링 하는 것은 쉽지 않음

Page 17: [Http완벽가이드] 9장 웹로봇

텍스트

현대적인 검색엔진 아키텍처▸ 검색엔진은 웹페이지들에 대해 full-text indexes 생성▸ 웹페이지들은 변화하기 때문에 색인은 특정 순간의 스냅숏에 불과함

Page 18: [Http완벽가이드] 9장 웹로봇

텍스트

풀 텍스트 색인 및 질의 보내기▸ 풀 텍스트 색인 : 특정 단어를 포함하는 문서를 즉시 알 수 있는 데이터베이스

Page 19: [Http완벽가이드] 9장 웹로봇

텍스트

검색결과 및 스푸핑▸ 검색결과를 정렬하고 보여주기

▸ 검색 된 문서들을 사용자가 원하는 문서순으로 정렬 필요▸ 예 ) 연관이 많은 순 정렬 ( 관련도 랭킹 활용 ), 인기도 활용

▸ 스푸핑▸ 웹 마스터가 자신의 사이트가 검색엔진 상위에 노출되도록 편법을 사용하는 것▸ 로봇 구현자들은 이런 방법을 걸러내도록 주의해야 함