python agent应用

BaseHTTPServer 模块说明

class BaseHTTPServer.HTTPServer(server_address, RequestHandlerClass)
server_address : 是一个服务器 (ip, port)元组。
RequestHandlerClass : 负责处理实例参数的类。

class BaseHTTPServer.BaseHTTPRequestHandler(request, client_address, server)
这个类负责处理到达服务端的请求
就其本身而言,它不响应任何实际的HTTP请求;只能被其他类继承来处理每个不同的请求(GET or POST)
该处理程序将解析请求和标题, 然后根据请求类型的不同调用不同的方法进行处理
SPAM ---> do_SPAM()
所有相关信息都存储在处理程序的实例变量中,子类不需要重写或扩展__init__() 方法

BaseHTTPRequestHandler 拥有的实例变量:

client_address
    客户端的(host, port)
server
    服务端实例  --->  <BaseHTTPServer.HTTPServer instance at 0x7f8f9b229758>
command
    请求的类型 ---> POST
path
    请求的路径
request_version
    请求的版本 ---> 'HTTP/1.0'
headers
    请求头信息 --->    Accept-Encoding: identity
                       Content-Length: 74
                       Host: 192.168.1.109:33433
                       Content-Type: application/x-www-form-urlencoded
                       Connection: close
                       User-Agent: Python-urllib/2.7
rfile
    输入流,起始于输入数据的开始,输入数据是可选的。 
wfile
    输出流,用于写入返回给客户端的响应
    
BaseHTTPRequestHandler 拥有的类变量
protocol_version
        响应中使用的HTTP 协议的版本。如果设置为'HTTP/1.1',服务器将允许HTTP 持久连接;
        然而,此时你的服务器必须在所有给客户端的响应中包含一个准确的Content-Length 头
        (使用send_header())。为了向后兼容,该设置默认为'HTTP/1.0'。
        
BaseHTTPRequestHandler 方法    
handle()        
        调用一次handle_one_request()方法(如果启用持久连接,则调用多次)来处理进来的HTTP 请求。
        你应该永远不会需要覆盖它;相反,应该实现合适的do_*() 方法。
handle_one_request()        
        该方法将解析并分发请求给合适的do_*() 方法。你应该永远不需要覆盖它。

原创文章,作者:心肝坏了,如若转载,请注明出处:http://www.178linux.com/41818

赞 (0)
心肝坏了心肝坏了
上一篇 2016-09-19 13:48
下一篇 2016-09-19 13:48

相关推荐

  • 马哥教育网络班N22期+第1周课程练习beta2

    马哥教育网络班N22期+第1周课程练习  1.计算机的组成及其功能 1.1 计算机的组成 根据冯·诺依曼体系结构,将计算机分为五个主要的部件: CPU:运算器 CPU:控制器 RAM:存储器 Input:输入设备 Output: 输出设备 其功能分别为: 运算器(Datapath):运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处…

    Linux干货 2016-08-15
  • linux基础服务之DNS

    一、DNS简介 1、DNS:Domain Name System(域名系统),是互联网上IP和域名相互解析的分布式层级结构的数据库。DNS的出现能够使用户更好的更加方便的访问互联网,不用记IP地址来访问互联网,可以通过人类更容易记住域名来访问互联网。 2、DNS是一种C/S架构的服务器,客户机用于一个名字对应的地址,而服务器是为客户机提供查询的,查询由两种机…

    2017-05-29
  • linux中nmcli命令使用及网络配置

      Red Hat Enterprise Linux 7 与 CentOS 7 中默认的网络服务由 NetworkManager 提供,这是动态控制及配置网络的守护进程,它用于保持当前网络设备及连接处于工作状态,同时也支持传统的 ifcfg 类型的配置文件。  NetworkManager 可以用于以下类型的连接:Ethernet,VLA…

    Linux干货 2016-09-10
  • rpm程序包管理器使用详解

    rpm程序包管理器的使用详解   说到程序包管理器,就会想到基于CentOS系统上的rpm命令与其对应的前端处理器yum。所谓程序包,是将源代码转换为二进制格式,再组织成一个或者多个包文件供用户安装使用。rpm程序包的命名格式如下:   name-VERSION-release.arch.rpm   软件名-版本号(分为主版本m…

    Linux干货 2016-08-21
  • linux用户和组管理

    linux用户和组管理 类Unix系统的设计初衷就是为让多用户同时工作,所以也迫使Linux系统有了极强的安全性,在前面安装红帽RHEL7操作系统时还特别要求“设置root用户密码”,而root用户是存在于所有类UNIX系统中的”超级用户”。 用户管理 root账户介绍(超级管理员) root用户拥有极高的系统所有权,能够管理系统的各项功能,如添加/删除用户…

    Linux干货 2016-09-05
  • Docker 之初次体验

    一、Docker 简介  lxc linux container,openvz  容器中各虚拟机只有一个内核,而是多个用户空间  在库中完成虚拟化,比如wine 或者在windows中运行bash  在应用程序的运行级别提供虚拟化,比如jvm   pstree , pid 为1 的进程  …

    Linux干货 2015-01-16