《HTTP权威指南》– 8.网关、机器人

网关

网关(gateway): 资源和应用程序之间的粘合剂。应用程序能够(经过HTTP或其它已定义的接口)请求网关来处理某条请求,网关能够提供一条响应。网关能够向数据库发送查询语句,或者生成动态的内容,像一扇门同样,进去一个请求,出来一个响应。php

 

严格的来讲,代理链接的是两个或多个使用一样协议的程序,而网关链接的是链接两个或多个不一样协议的程序网关负责的是协议的转换数据库

 

客户端和服务器端网关:

  • Web网关在一侧使用HTTP协议,在另外一侧使用另外一种协议;能够用一个斜杠来分隔客户端和服务器端协议,并以此对网关进行描述;
  • <客户端协议> / <服务器端协议>
  • 客户端网关:(client – side gateway)经过其它协议与客户端对话,经过HTTP与服务器通讯;
  • 服务器端网关 (server – side gateway) 经过HTTP与客户端对话,经过其它协议与服务器通讯;

通用网关接口

通用网关接口(common gateway interface CGI): CGI是一个标准接口集,Web服务器能够用它来装载程序以响应。对特定URL的HTTP请求,并收集程序的输出数据,将其放在HTTP响应中回送。api

隧道:

Web隧道 容许用户经过HTTP链接发送非HTTP流量,这样就能够在HTTP附带其它协议数据,也就是说,能够在HTTP链接中嵌入非HTTP流量,非HTTP流量就能够穿过只容许Web流量经过的防火墙了。服务器

 

Web机器人

Web机器人 是可以在无需人类干预的状况下自动进行一系列 Web事物处理的软件程序。不少机器人会从一个Web站点逛到另外一个Web站点,获取内容,跟踪超连接,并对它们找到的数据进行处理。若是一个Web站点有 robots.txt文件,那么在访问这个Web站点上的任意URL以前,机器人都必须去获取它并对其进行处理。由主机名和端口号定义的整个Web站点仅有一个 robots.txt资源。若是站点是虚拟主机,每一个虚拟的docroot均可以有一个 robots.txt文件app

获取robots.txt

机器人会用HTTP的GET方法来获取robots.txt资源,就像获取Web服务器上全部其余资源同样,机器人应该在 From首部 和 User-Agent首部 中传输标识信息,以帮助站点管理员对机器人的访问进行跟踪。ide

# 例子:
GET / robots.txt HTTP / 1.0
HOST:www.example.com
User-Agent:Slurp / 2.0
Date:Web Oct 3 23:30:EST

响应码和状态码:

机器人会根据对robots.txt检索结果采起不一样方案。post

  • 2xx:机器人对内容进行解析,并使用排斥规则从那个站点上获取内容;
  • 404:(没找到文件)机器人认为服务器没有任何排斥规则,对次站点的访问不受robots.txt限制;
  • 401 / 403:机器人认为对此站点访问彻底受限;
  • 503:机器人会推迟对此站点的访问,直到能够获取资源为止;
  • 3xx:若是服务器相应说明是重定向,机器人就应该跟着重定向,直到找到资源为止;

robots.txt文件格式:

文件中有三种类型行:空行、注释行和规则行。spa

  • User - Agent:Slurp 容许机器人Slurp访问;
  • User - Agent:Webcrawler 容许机器人Webcrawler访问;
  • DisAllow: / private 访问除了private子目录;
  • DisAllow: 阻止其它机器人访问该站点任何内容
#
# 例子:robots.txt for Discuz! X3
#
User-agent: *
Disallow: /api/
Disallow: /data/
Disallow: /source/
Disallow: /install/
Disallow: /template/
Disallow: /config/
Disallow: /uc_client/
Disallow: /uc_server/
Disallow: /static/
Disallow: /admin.php
Disallow: /search.php
Disallow: /member.php
Disallow: /api.php
Disallow: /misc.php
Disallow: /connect.php
Disallow: /forum.php?mod=redirect*
Disallow: /forum.php?mod=post*
Disallow: /home.php?mod=spacecp*
Disallow: /userapp.php?mod=app&*
Disallow: /*?mod=misc*
Disallow: /*?mod=attachment*
Disallow: /*mobile=yes*

机器人的META标签:

NOINDEX:告诉机器人不要对页面的内容进行处理;代理

<META NAME = "ROBOTS" CONTENT = "NOINDEX">

NOFOLLOW:告诉机器人不要爬行这个页面的任务外链;code

<META NAME = "ROBOTS" COMEN = "NOFOLLOW">
相关文章
相关标签/搜索