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权威指南

  • 相关阅读:
    新的
    曾经写过得太监小说3《缱绻修真界》
    Python的from和import用法
    python几个有意思的小技巧
    leetcode 最长回文串
    leetcode-快速排序C++自写
    leetcode 面试题 01.06. 字符串压缩
    leeetcode 剑指 Offer 29. 顺时针打印矩阵
    leetcode 70. 爬楼梯 续
    leetcode 1143. 最长公共子序列-华为
  • 原文地址:https://www.cnblogs.com/duanbiaowu/p/5036203.html
Copyright © 2011-2022 走看看