request请求处理
通过mod_lwt模块提供的处理程序来调用Lua脚本处理HTTP请求。具体流程:
-
- 判断该请求是否由LWT处理,如果不是,拒绝处理请求;
- 判断Lua脚本文件是否存在,如果不存在,返回一个HTTP 404(未找到);
- 响应内容类型默认为"text/html";
- 创建一个新的Lua状态;
- 在这个新Lua状态中打开标准Lua库;
- 在Lua的状态下打开httpd.core库;
- 根据适用于该脚本的配置指令设置package.path和package.cpath变量;
- 加载Lua脚本运行,如果遇到一个语法错误、内存不足或者IO错误,则返回一个HTTP 500(内部服务器错误);
- 调用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) do 12 httpd.write(key .." -> " .. (request[key] or "(not set)") .. "\r\n") 13 end 14 httpd.write("----------------------------------")
时间: 2025-01-06 12:36:51