*크롤링: 인터넷 검색엔진은 웹을 돌아다니면서 모든 문서를 모으기 위해 크롤러를 사용한다.
*크롤링을 하기 전에 출발지점을 정해야한다. 이 방문해야되는 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 옵션
'오늘의 공부 > 서버' 카테고리의 다른 글
http 완벽가이드(13일차): 10장 HTTP 2.0 (0) | 2021.12.24 |
---|---|
http 완벽가이드(11일차): 8장 게이트웨이 궁금증 및 기록 (0) | 2021.11.29 |
http 완벽가이드(11일차): 7장 캐시 (0) | 2021.11.29 |
http 완벽가이드(10일차): 6장 프록시 궁금증 및 기록 (0) | 2021.11.26 |
1. 우분투에서 아파치 웹서버 설치하기 (6) | 2020.07.08 |