`

lighttpd插件开发步骤(一)

 
阅读更多

转自: http://www.54chen.com/index.php?p=309 

lighttpd插件开发步骤

 

插件架构说明

  • lighttpd的状态:为了便于理解lighttpd插件开发,需要了解lighttpd server在处理请求响应消息的过程中的11种状态,在这些状态中有如下重要函数需要被调用。对于这些状态,有的请求可能都会涉及到,有些请求可能只会经过部分状态。
状态 含义 对应函数
connect waiting for a connection nothing
reqstart init the read-idle timer nothing
read read http-request-header from network connection_handle_read_state()
connection_handle_read()
reqend parse request http_request_parse()
readpost read http-request-content from network connection_handle_read_state()
connection_handle_read()
handlereq handle the request internally (might result in sub-requests) http_response_prepare()
respstart prepare response header connection_handle_write_prepare()
write write response-header + content to network connection_handle_write()
respend cleanup environment, log request plugins_call_handle_request_done()
plugins_call_handle_connection_close()
connection_close() (if not keep-alive)
connection_reset()
error reset connection (incl. close()) plugins_call_handle_request_done()
plugins_call_handle_connection_close()
connection_reset()
close close connection (handle lingering close) connection_close()
  • lighttpd的回调函数:lighttpd在不同的状态中共有16个回调函数.
    • Serverwide hooks
init_
  called when the plugin is loaded
cleanup_
  called when the plugin is unloaded
set_defaults_
  called when the configuration has to be processed
handle_trigger_
  called once a second
handle_sighup_
  called when the server received a SIGHUP

 

    • Connectionwide hooks

 

Most of these hooks are called in ``http_response_prepare()`` after some
fields in the connection structure are set.

handle_uri_raw_
  called after uri.path_raw, uri.authority and uri.scheme are set
handle_uri_clean_
  called after uri.path (a clean URI without .. and %20) is set
handle_docroot_
  called at the end of the logical path handle to get a docroothandle_subrequest_start_
  called if the physical path is set up and checked
handle_subrequest_
  called at the end of ``http_response_prepare()``
handle_physical_path_
  called after the physical path is created and no other handler is
  found for this request
handle_request_done_
  called when the request is done
handle_connection_close_
  called if the connection has to be closed
handle_joblist_
  called after the connection_state_engine is left again and plugin
  internal handles have to be called
connection_reset_
  called if the connection structure has to be cleaned up
分享到:
评论

相关推荐

    lighttpd1.4.54源码及依赖库prce8.43源码

    lighttpd是基于C语言开发的,其设计理念在于提供一个快速、安全且低内存占用的HTTP服务器解决方案。1.4.54是lighttpd的一个稳定版本,具有以下特点: 1. 高性能:lighttpd采用了多线程和事件驱动的模型,能有效处理...

    Trac0.12搭建&插件&注意点

    Trac是一款开源且免费的项目管理工具,特别适合软件开发团队进行缺陷跟踪、文档管理以及版本控制集成。本文主要围绕Trac 0.12版本的搭建过程、插件安装及使用中的注意事项展开。 首先,Trac的搭建涉及到多个步骤,...

    c web server library

    7. **开发与扩展**:除了基本的使用,开发者还可以根据需求扩展Lighttpd的功能,比如编写新的模块或插件,以满足特定的业务逻辑。 总的来说,"c web server library" 这个主题涵盖了从基础的Web服务器原理到具体...

    nagios详细安装和插件介绍

    3. **插件设计**:提供了一个易于扩展的插件架构,用户可以根据自己的需求开发自定义检测脚本。 4. **并行服务检查**:通过并行检查机制提高监控效率。 5. **网络层次结构定义**:允许用户定义主机间的层次关系,有...

    Trac软件开发流程管理工具

    Trac是一款开源且免费的软件开发流程管理工具,它结合了问题跟踪系统、项目管理和文档版本控制系统等功能,为软件团队提供了一个集中的、基于Web的协作环境。Trac的出现旨在帮助开发团队更好地追踪和解决项目中的...

    windows下trac系统t的安装及配置

    2. **问题追踪**:Trac 支持创建和追踪 bug、功能请求等,帮助项目团队更好地管理软件开发过程中的问题。 3. **Wiki**:内置的 Wiki 功能允许团队成员轻松创建和编辑文档,有助于知识共享和项目文档管理。 4. **高度...

    Openfire下实现WebServer

    在Openfire下实现WebServer是一项常见的任务,Openfire作为一个开源的即时通讯服务器,它提供了丰富的API和插件机制,使得我们可以方便地在其基础上构建各种功能,包括集成WebServer。在这个过程中,我们将探讨如何...

    Trac安装用到的软件

    标题中的“Trac安装用到的软件”表明我们将讨论Trac的安装过程,这是一个开源的项目管理和问题跟踪系统,常用于软件开发团队。Trac与版本控制系统如Subversion或Git结合使用,提供了一个集成了代码浏览、问题追踪、...

    moin-1.9.3

    moinmoin是一款功能丰富的Wiki系统,由Jan Gerken开发,并且拥有一个活跃的开发者社区。它支持多种操作系统,包括Linux、Windows和macOS,可以轻松地集成到各种Web服务器环境中,如Apache、lighttpd或内置的HTTP...

    codereview工具的简介及安装教程

    代码审查(Code Review)是软件开发流程中的一个重要环节,它指的是一个团队成员对另一个团队成员的源代码进行检查的过程,目的在于提高代码质量、发现潜在的错误、提高团队成员间的交流和知识共享。Code Review工具...

    Trac安装包

    - 安装Web服务器插件或配置,如Apache的mod_wsgi或lighttpd的fastcgi,使得Web服务器能与Trac通信。 - 最后,启动Web服务器,Trac服务即可开始运行。 4. **Trac的主要特性**: - **缺陷跟踪**:Trac允许创建、...

    IIS虚拟机IIS替代软件

    IIS是微软公司开发的一款广泛使用的Web服务器,它允许用户托管网站、应用程序和服务。然而,有些开发者或管理员可能需要寻找替代品,这可能是出于成本、性能、兼容性或其他技术原因。 在寻找IIS的替代软件时,有几...

    subversion1.8.13版本 svn版本控制器服务器安装包

    Subversion1.8.13作为一个稳定且功能丰富的版本控制器,是个人项目和企业级开发的理想选择,它能有效管理和协调多人协作,确保代码的安全性和一致性。通过深入学习和实践,你可以充分利用它的强大功能来提升工作效率...

    subversion-1.7.6.tar.gz

    3. **系统服务**:为了提供持续的Subversion服务,可以将Subversion服务器作为系统服务运行,例如使用Apache HTTPD或lighttpd。 4. **权限管理**:在Linux环境中,可以利用Unix权限和SVN的访问控制列表(ACLs)来...

    Moodle平台安装教程最详细.doc

    2. Web服务器:Apache是最常用的选择,但Moodle理论上也可在IIS、lighttpd、nginx、cherokee、zeus和LiteSpeed等其他服务器上运行,只是未进行全面测试或官方支持。注意,无论选择哪种Web服务器,都需要确保它配置了...

Global site tag (gtag.js) - Google Analytics