【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
")
 8 httpd.write("
")
 9 httpd.write("----------------------------------")
10 httpd.write("
")
11 for _, key in ipairs(request_fields) do
12         httpd.write(key .." -> " .. (request[key] or "(not set)") .. "
")
13 end
14 httpd.write("----------------------------------")

   

原文地址:https://www.cnblogs.com/linxiong945/p/4103596.html