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

相关推荐

  • Linux基础知识之网络配置

    基本网络配置:     将Linux主机接入到网络,需要配置网路相关设置。         IP/NETMASK:本地通信         路由(网关):跨网络…

    Linux干货 2016-09-07
  • Redhat的Linux产品版本AS/ES/WS的联系与区别

    Redhat 有两大Linux产品系列,其一是免费的Fedora Core系列主要用于桌面版本,提供了较多新特性的支持。另外一个产品系列是收费的Enterprise系列,这个系列分成:AS/ES/WS等分支,他 们都是redhat企业级Linux,简称为 RHEL AS 是超级服务器版(Advanced Server),他在标准Linux内核的基础上,做了性…

    Linux干货 2015-03-20
  • 习题

    1.当用户xiaoming对/testdir 目录无执行权限时,意味着无法做哪些操作? 2.当用户xiaoqiang对/testdir 目录无读权限时,意味着无法做哪些操作? 3.当用户wangcai 对/testdir 目录无写权限时,该目录下的只读文件file1是否可修改和删除? 4.复制/etc/fstab文件到/var/tmp下,设置文件所有者为wa…

    Linux干货 2016-08-04
  • N25-第二周作业

    1、linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示 linux上处理目录的常用命令:     ls :列出目录     cd :切换目录     pwd:显示当前工作路径    &nbs…

    Linux干货 2016-12-13
  • CentOS 7上配置php-fpm

    CentOS 7上配置php-fpm:              httpd-2.4:rpm包默认编译支持了fcgi模块;              php-fpm包:专用于将php运行于fpm模式;   &n…

    2017-06-06
  • 文本处理三剑客之sed

    文本处理三剑客之sed sed概述 sed使用示例 sed的高级应用 sed概述 sed, 作为文本三剑客之一,其定位就是一个编辑器, 而且sed是一个流式编辑器(stream editor),其主要功能是过滤和转换文本。 sed – stream editor for filtering and&…

    Linux干货 2016-08-12