|
|
| 第1行: |
第1行: |
| 明白您的要求。以下是严格遵循 MediaWiki 语法、使用 <ref>标签进行标注,并符合百科格式的精确词条。 '''Robots.txt'''(全称:Robots Exclusion Protocol,缩写 REP)是一种存放于网站根目录的纯文本文件,用于向网络爬虫(Web Crawler)及各类网络机器人(Internet Bot)发出访问指令,告知其网站中哪些内容允许被抓取、哪些内容禁止被抓取<nowiki><ref name=":0"></nowiki>[https://datatracker.ietf.org/doc/rfc9309/ RFC 9309: Robots Exclusion Protocol]</ref>。该协议基于自愿遵守原则,并非所有爬虫均会遵从。Robots.txt 文件通常与站点地图(Sitemap)配合使用,以优化搜索引擎对网站内容的索引效率<ref name=":1">[https://developers.google.com/search/docs/crawling-indexing/robots/intro Google 搜索中心: Robots.txt 简介]</ref>。
| | #REDIRECT [[虚舟实验室]] |
| {| class="infobox" style="border:1px solid #ccc; background:#f8f9fa; width:24em; float:right; margin:0 0 1em 1em; border-spacing:5px;"
| |
| ! colspan="2" style="text-align:center;" |'''Robots.txt'''
| |
| |-
| |
| |中文名
| |
| |'''机器人排除协议文件'''
| |
| |-
| |
| |英文名
| |
| |'''Robots.txt'''
| |
| |-
| |
| |别称
| |
| |Robots Exclusion Protocol (REP)
| |
| |-
| |
| |发布年份
| |
| |1994年
| |
| |-
| |
| |标准化年份
| |
| |2022年(RFC 9309)
| |
| |-
| |
| |提出者
| |
| |Martijn Koster
| |
| |-
| |
| |文件扩展名
| |
| |.txt
| |
| |-
| |
| |MIME类型
| |
| |text/plain
| |
| |-
| |
| |存放位置
| |
| |网站根目录(如 <nowiki>https://caellab.com/robots.txt)</nowiki>
| |
| |}
| |
| | |
| == 历史 ==
| |
| Robots Exclusion Protocol 由 Martijn Koster 于 1994 年 2 月在 www-talk 邮件列表中首次提出,当时他就职于 Nexor 公司<ref name=":2">[https://www.robotstxt.org/orig.html Origin of the robots.txt protocol]</ref>。Koster 提出该标准的直接诱因是作家 Charles Stross 编写的一个行为不当的网络爬虫对其服务器造成了拒绝服务攻击,促使 Koster 寻求一种能够让网站管理员与爬虫进行“协商”的解决方案<ref name=":2" />。
| |
| | |
| 该方案迅速成为事实上的行业标准,绝大多数搜索引擎运营商的爬虫均选择遵守,包括 WebCrawler、Lycos 等早期搜索引擎。在此后近三十年间,该协议通过广泛实践不断演进,直至 2022 年,互联网工程任务组(IETF)正式将其发布为 RFC 9309 标准文件,标志着 Robots Exclusion Protocol 正式成为互联网官方标准<ref name=":0" />。
| |
| | |
| == 技术规格 ==
| |
| | |
| === 文件存放位置 ===
| |
| Robots.txt 文件必须存放于网站主机的根目录下,并通过统一资源标识符(URI)/robots.txt 访问。例如,对于域名 <nowiki>https://www.example.com,其</nowiki> robots.txt 文件的访问地址即为 <nowiki>https://www.example.com/robots.txt。每个网站仅允许存在一个</nowiki> robots.txt 文件。该文件为 UTF-8 编码的纯文本文件,不可使用文书处理软件创建,以免引入不兼容字符<ref name=":1" />。
| |
| | |
| === 核心语法与指令 ===
| |
| Robots.txt 由若干规则块(rule block)组成,每个规则块以 User-agent 指令起始,后接若干条 Disallow 及 Allow 指令<ref name=":0" />。
| |
| | |
| * '''User-agent''':指定该规则块所适用的爬虫名称。星号“*”为通配符,表示适用于所有爬虫。
| |
| * '''Disallow''':指示爬虫不得访问以指定路径开头的网址。若值为“/”,则禁止爬虫访问网站全部内容。
| |
| * '''Allow''':指示爬虫允许访问以指定路径开头的网址。该指令通常与 Disallow 配合使用,为部分爬虫开放特定路径。
| |
| * '''Sitemap''':指示站点地图文件的位置,可独立于 User-agent 块单独声明。该指令虽未纳入 RFC 9309 标准,但获得了所有主流搜索引擎的支持<ref name=":1" />。
| |
| | |
| '''语法示例:'''
| |
| User-agent: Googlebot
| |
| Disallow: /nogooglebot/
| |
| | |
| User-agent: *
| |
| Allow: /
| |
| | |
| Sitemap: <nowiki>https://www.example.com/sitemap.xml</nowiki>
| |
| 上述规则的含义为:名为 Googlebot 的爬虫不得访问路径以 /nogooglebot/ 开头的任何网址;其余所有爬虫则允许访问全站。
| |
| | |
| === 通配符与匹配规则 ===
| |
| 部分搜索引擎在其实现中支持通配符字符。星号“*”可匹配任意字符序列(含空序列),美元符号“$”用于匹配行尾。这些通配符规则不属于 RFC 9309 标准核心,但在 Google、Bing 等主流搜索引擎的实现中得到了支持<ref name=":3">[https://developers.google.com/search/docs/crawling-indexing/robots/details Google 搜索中心: Robots.txt 详情与高级语法]</ref>。
| |
| | |
| == 局限性与安全注意事项 ==
| |
| Robots Exclusion Protocol 基于自愿遵守原则。恶意爬虫(如垃圾邮件发送者、电子邮件地址收集器、恶意软件扫描器)和安全漏洞扫描器常常完全忽略 robots.txt 中的指令<ref name=":4">[https://owasp.org/www-community/attacks/Information_exposure_through_robots.txt OWASP: Information exposure through robots.txt]</ref>。
| |
| | |
| Robots.txt '''不得'''作为安全访问控制机制使用。该文件公开可访问,将其用于屏蔽敏感目录或文件非但不能起到保护作用,反而会向潜在攻击者主动暴露网站受限区域的位置。OWASP 基金会亦明确指出,robots.txt 不应被视作限制第三方访问、存储或重新发布网络内容的有效机制<ref name=":4" />。如网站管理员确实需要阻止对特定内容的访问,应使用服务器端访问控制机制(如 HTTP 身份验证或 IP 地址限制)等替代方案<ref name=":1" />。
| |
| | |
| == 应用与影响 ==
| |
| | |
| === 搜索引擎优化 ===
| |
| 在搜索引擎优化(SEO)实践中,Robots.txt 文件被广泛用于管理网站的“抓取预算”——即搜索引擎在特定时间内对网站发起请求的频率和数量上限。通过合理配置 robots.txt 禁止爬虫访问低价值页面(如重复内容、内部搜索结果页、管理后台等),网站管理员可引导爬虫将抓取资源集中于重要内容上<ref name=":1" />。Google 已开源其 robots.txt 解析器,供开发者参考使用<ref name=":5">[https://github.com/google/robotstxt Google robots.txt parser on GitHub]</ref>。
| |
| | |
| === 搜索引擎的实现 ===
| |
| 主流搜索引擎对 robots.txt 标准的实现存在细微差异,主要体现在对通配符的支持、对 Allow 指令的处理顺序等方面。Google 建议网站管理员使用其 Search Console 中的 robots.txt 测试工具对文件进行验证<ref name=":3" />。Bing 亦在其 Bing Webmaster Tools 中提供了类似功能,协助网站管理员分析 robots.txt 文件并识别可能影响抓取效率的问题<ref name=":6">[https://www.bing.com/webmasters/help Bing Webmaster Tools Help]</ref>。
| |
| | |
| === 人工智能爬虫 ===
| |
| 随着人工智能技术的发展,Robots Exclusion Protocol 被越来越多地用于管理以数据采集为目标的 AI 爬虫行为。RFC 9309 标准正被探讨扩展至 AI 领域,以便内容所有者通过 robots.txt 文件表达其内容是否可用于大语言模型的训练<ref name=":0" />。
| |
| | |
| == 参见 ==
| |
| | |
| * 站点地图([[Sitemap.xml|Sitemap]])
| |
| * [[X-Robots-Tag]](HTTP 标头)
| |
| | |
| == 参考文献 ==
| |
| <references />
| |