【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) do
12         httpd.write(key .." -> " .. (request[key] or "(not set)") .. "\r\n")
13 end
14 httpd.write("----------------------------------")

   

时间: 2024-08-22 13:14:59

【lua】LWT request请求处理的相关文章

【Lua】Lua + LWT + ExtJS构建目录树

Lua处理后台逻辑,Lua lwt搭建后台程序,ExtJS根据后台传来的json数据构建目录树. 前台html和ExtJS代码不用多讲,直接上代码: treePanel.html 1 <html> 2 <head> 3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 4 5 <title>ExtJS TreePanel</

lua https request 调用

网上资料 引用ssl.https 包 local https = require("ssl.https") 之后按同http一样调用. 但是,这种只最基本的实现了访问https服务的要求,却没有验证数字证书的示例说明. 数字证书的调用 类似 wget --private-key /root/client.key --certificate /root/client.crt --ca-certificate /root/ca.crt https://www.test.com -O wge

Spring Boot :Request请求处理流程

技术交流群:233513714

【Lua】linux下lua+mod_lwt环境搭建

Lua 是一个小巧的脚本语言.它具有轻量级.可扩展等优势.它可以作为一个强大.轻量的脚本语言,供任何需要的程序使用. LWT (Lua Web Tools) 可让你使用 Lua 开发 Web 应用,并可直接在 Apache 上运行.LWT 的核心功能通过一个 Apache 的模块(mod_lwt)来提供.另外 LWT 提供可选的 Lua 模块用来访问数据库和缓存. 现在用lua + LWT来搭建后台web环境. 安装lua: 在linux中,有两种方法可以安装lua. 第一种:系统为Ubunut

lua动态修复线上bug实践(iOS篇)

lua动态修复线上bug实践(iOS篇) 利用wax框架,wax可以把Lua脚本语言和原生Objective-C应用编程接口(API)结合起来.这意味着,你可以从Lua里面,使用任何和全部的Objective-C类及框架. 1.wax.framework的问题 https://github.com/probablycorey/wax 这个框架已经4年没更新了,而且不支持64位. 用它来替换原来ViewController中函数不生效. 所以替换为 https://github.com/maxfo

Openresty使用

OpenResty是一个全功能的 Web 应用服务器.它打包了标准的 Nginx 核心,常用的第三方模块以及大多数依赖项. 可以把它看成是Nginx附加众多的第三方插件的合集.其主体是嵌入lua脚本的支持,让你能够使用lua灵活地处理运算逻辑. 本课程主要讲lua为Nginx带来的新的处理方式,及OpenResty组件的使用. 12.1. Openresty的安装配置 12.1.1. 简易的yum安装方式 此方式简单,缺点是无法干预启停插件 yum install yum-utils yum-c

Struts2 源码分析——调结者(Dispatcher)之action请求

章节简言 上一章笔者讲到关于struts2启动的时候加载对应的准备工作.如加载配置文件struts.xml之类的信息.而相应的这些操作都离不开Dispatcher类的帮助.如果读者只是认为Dispatcher类的作用只有这些.那真的是大错特错了.所以本章笔者将继续讲到关于Dispatcher类的另一个功能.即是StrutsPrepareFilter类俩项工作中的处理request请求相关信息.在讲解之前,笔者还是想把相关的信息回想一下:当项目启动的时候,strtus2也就启动了.然后就会去初始化

8、SpringMVC源码分析(3):分析ModelAndView的形成过程

首先,我们还是从DispatcherServlet.doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception方法开始,看看这个牛逼的ModelAndView是怎么开始的,又是怎么结束的: 1 protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Except

嵌入式驱动开发之--- 虚拟磁盘SBULL块设备驱动程序分析

#define SBULL_MINORS  16         /* 每个sbull设备所支持的次设备号的数量 */ #define KERNEL_SECTOR_SIZE 512  // 本地定义的常量,使用该常量进行内核512字节到实际 // 扇区大小的转换 #define INVALIDATE_DELAY  30*HZ 块设备的核心数据结构(the internal representation of our device): struct sbull_dev{ int size;