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

相关推荐

  • centos 7 之nmcli命令

    1、nmcli命令的作用 nmcli : command‐line tool for controlling NetworkManager     NetworkManager:动态管理和监控网络设置的守护进程。用户和脚本都可使用命令行工具 nmcl…

    Linux干货 2016-09-10
  • linux流程控制if,for,case,while

     Shell编程中循环命令用于特定条件下决定某些语句重复执行的控制方式,有三种常用的循环语句:for、while和until。while循环和for循环属于“当型循环”,而until属于“直到型循环”。循环控制符:break和continue控制流程转向。 选择执行:           …

    Linux干货 2017-03-25
  • 8.1作业习题

    1,创建testuser uid 1234,主组:bin,辅助组:root,ftp,shell:/bin/csh home:/testdir/testuser useradd -u 1234 -g bin -G root,ftp -s /bin/csh -d /testdir/testuser testuser 2.修改testuser uid:4321,主…

    Linux干货 2016-08-04
  • vim编辑器

      Linux文本编辑器vim     Linux下的编辑器最常用的就是vim或者vi文本编辑。vi和vim编辑器的区别是vim是vi的改进版本,在vi编辑器的基础上上扩展了很多实用的功能。 vim的使用 用vim打开文件:     vim [options] [file ..]…

    Linux干货 2016-12-04
  • 马哥教育网络班22期+第四周课程练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost ~]# cp -rf /etc/skel/ /home/tuser1 [root@localhost ~]# chmod&…

    Linux干货 2016-09-19
  • DNS服务和搭建

    DNS服务:        名字解析        DNS 服务        实现主从服务器        实现子域        实现view  …

    2017-04-16