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

相关推荐

  • 第三周课堂练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@myserver ~]# whoami  root  [root@myserver ~]# who | cut -d' ' -…

    Linux干货 2016-09-19
  • 初入Linux世界 —马哥教育网络班N22_第三周课程练习

    一、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。           [root@Alien ~]# who |cut -d ' ' -f1|sort -u       root 二、取出最后登录到当前系统的用户的相关…

    Linux干货 2016-09-19
  • 初识正则表达式

    正则表达式是个什么东东? 正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE)。在很多文本编辑器里、命令中,通常要使用检索、替换、放行和拒绝那些符合某个模式的文本。而正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。  摘自《正则表达式之…

    Linux干货 2015-03-27
  • 划分子网例题

    概念:子网划分就是——>将一个大网络(主机ID位多)划分成多个小的网络(主机ID位少) 如何实现呢?!        实现——->网络ID向主机ID借位,网络ID位变多,主机ID位变少 涉及的公式:         &n…

    2017-09-04
  • Linux 之LVM

    一 LVM 简介:     LVM是 Logical Volume Manager(逻辑卷管理)的简写,LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。LVM的工作原理其…

    Linux干货 2016-03-01
  • 安装centos7

    在vmware安装centos7

    2018-03-26