zoukankan      html  css  js  c++  java
  • 《HTTP权威指南》– 8.网关、Web机器人

    集成点:网关、隧道及中继

    网关

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

    客户端和服务器端网关:

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

    通用网关接口:

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

    隧道:

    Web隧道 允许用户通过HTTP连接发送非HTTP流量,这样就可以在HTTP附带其它协议数据,也就是说,可以在HTTP连接中嵌入非HTTP流量,非HTTP流量就可以穿过只允许Web流量通过的防火墙了。

    Web机器人

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

    获取robots.txt

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

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

    响应码和状态码:

    机器人会根据对robots.txt检索结果采取不同方案。

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

    robots.txt文件格式:

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

    • 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:告诉机器人不要爬行这个页面的任务外链;

    <META NAME = "ROBOTS" COMEN = "NOFOLLOW">
    

    ### 图灵图书 -- HTTP权威指南

    豆瓣读书 -- HTTP权威指南

  • 相关阅读:
    SGU 495 Kids and Prizes 概率DP 或 数学推理
    poj 2799 IP Networks 模拟 位运算
    uva 202 Repeating Decimals 模拟
    poj 3158 Kickdown 字符串匹配?
    uva 1595 Symmetry 暴力
    uva 201 Squares 暴力
    uva 1594 Ducci Sequence 哈希
    uva 1368 DNA Consensus String 字符串
    数字、字符串、列表的常用操作
    if条件判断 流程控制
  • 原文地址:https://www.cnblogs.com/duanbiaowu/p/5036203.html
Copyright © 2011-2022 走看看