필요하다고 생각되는 부분만 정리
9.4.2 웹 사이트와 robots.txt 파일들
웹 사이트의 어떤 url을 방문하기 전에, 그 웹 사이트에 robots.txt 파일이 존재한다면 로봇은 반드시 그 파일을 가져와서 처리해야한다.
사이트 전체에 대한 robots.txt는 단 하나만이 존재한다.
로봇은 HTTP GET 메서드를 통해서 robots.txt를 가져온다.
많은 웹사이트가 robots.txt를 갖고 있지 않지만, 로봇은 그래도 찾아보는게 의무이다.
- 서버가 200으로 응답
로봇은 반드시 그 응답의 컨텐츠를 파싱하여 차단 규칙을 얻고, 그 사이트에서 무언가를 가져오려고 할때 그 규칙에 따라야한다.
- 서버가 404으로 응답
만약 리소스가 존재하지 않는다고 서버가 응답하면 로봇은 활성화된 차단 규칙이 존재하지 않는다고 가정하고 robots.txt의 제약없이 사이트에 접근한다.
- 서버가 401, 403응답
로봇은 그 사이트로의 접근은 완전히 제한되어있다고 가정해야한다.
- 서버가 503응답
로봇은 그 사이트의 리소스를 검새갛는 것은 뒤로 미루어야한다.
- 서버가 3XX응답
로봇은 리소스가 발견될때까지 리다이렉트를 따라가야한다.
9.4.3 robots.txt 파일 포맷
robots.txt 파일의 각 줄은 빈줄, 주석줄, 규칙줄의 3가지 종류가있다.
각 레코드는 규칙 줄들의 집합으로 되어있으며 빈 줄이나 파일 끝 문자로 끝난다.
하나 이상의 User-Agent 줄로 시작하며 뒤이에 이 로봇들이 접근할 수 있는 URL들을 말해주는 Allow, Disallow 줄이온다.
- User-Agent
각 로봇의 레코드는 하나 이상의 User-Agent 줄로 시작하며 형식은 다음과 같다.
User-Agent: <robot-name>
혹은 User-Agent: *
둘다 없다면 접근에 어떤 제한도 없는것이다.
또한 네이밍도 주의해야하는데, User-Agent: bot는 Bot, Robot, Bottom-Feeder, Dont-Bother-Me 등등에 모두 매치된다.
- Disallow, Allow
Disallow, Allow 줄은 User-Agent 줄을 바로 다음에 옴.
로봇은 순서대로 검색해보고 첫번째로 맞은 것이 사용됨.
어떤 것도 맞지 않으면 허용한것으로 간주
규칙경로는 반드시 그 맞춰보고자하는 경로의 대소문자를 구분하는 접두어여야 한다.
9.4.5 robots.txt의 캐싱과 만료
robots.txt는 캐시를 하지 않으면 부하가 2배로 늘어날것이기 때문에 캐싱이 필요하다.
'개발 > Web Programming' 카테고리의 다른 글
[HTTP 완벽 가이드] 11. 클라이언트 식별과 쿠키 (0) | 2022.06.26 |
---|---|
[HTTP 완벽가이드] 10. HTTP 2.0 (0) | 2022.06.26 |
`React/RCTBridgeModule.h` file not found (0) | 2022.06.14 |
[HTTP 완벽가이드] 8장. 통합점. 게이트웨이, 터널, 릴레이 (0) | 2022.06.12 |
react-naitve와 flutter의 차이점 (0) | 2022.06.07 |