首页 > 代码库 > 【lua】LWT request请求处理

【lua】LWT request请求处理

request请求处理

  通过mod_lwt模块提供的处理程序来调用Lua脚本处理HTTP请求。具体流程:

    1. 判断该请求是否由LWT处理,如果不是,拒绝处理请求;
    2. 判断Lua脚本文件是否存在,如果不存在,返回一个HTTP 404(未找到);
    3. 响应内容类型默认为"text/html";
    4. 创建一个新的Lua状态;
    5. 在这个新Lua状态中打开标准Lua库;
    6. 在Lua的状态下打开httpd.core库;
    7. 根据适用于该脚本的配置指令设置package.path和package.cpath变量;
    8. 加载Lua脚本运行,如果遇到一个语法错误、内存不足或者IO错误,则返回一个HTTP 500(内部服务器错误);
    9. 调用Lua脚本,在传递request请求和args值的时候,如果遇到内存不足或程序出错,则返回一个HTTP 500;

  request请求的各种值:       

 

 


 1 require "httpd" 2 local request_fields = { "uri", "protocol", "hostname", "path", "path_info", "args", 3                 "method", "filename", "filedir", "user", "auth_type", 4                 "local_ip", "remote_ip" } 5 request, args = ... 6 httpd.set_content_type("text/plain; charset=utf8") 7 httpd.write("Hello Lua World\r\n") 8 httpd.write("\n") 9 httpd.write("----------------------------------")10 httpd.write("\n")11 for _, key in ipairs(request_fields) do12         httpd.write(key .." -> " .. (request[key] or "(not set)") .. "\r\n")13 end14 httpd.write("----------------------------------")

   

【lua】LWT request请求处理