当前位置: 首页 > Web前端 > HTML5

luaweb快速开发指南(四)——详细了解httpd库的作用

时间:2023-04-05 22:25:19 HTML5

httpd库是基于HTTP1.1协议实现的。内置高性能http协议解析器和urldecode解析库。httpd库默认可以很好的工作,但是在一些要求比较极端的场景下,还是需要对参数进行微调.httpd常用的内置方法介绍1.httpd:timeout(number)设置每个连接等待时间的最大空闲(idle)连接。如果超过这个值,httpd会主动断开连接。(默认值:30秒)2.httpd:max_path_size(number)设置Path的最大长度,如果超过这个值httpd将返回414。(默认值:1024)3.httpd:max_header_size(number)设置最大长度ofHeader,如果超过这个值httpd会返回431。(默认值为:65535)4.httpd:max_body_size(number)设置Body的最大长度,如果超过这个值会返回413。(默认为1024*1024)5.httpd:before(function)before方法决定了API和USE路由回调触发前的行为。缺省情况下,允许所有路由通过。before方法一般用于设置和修改用户验证路由行为(如header验证),为开发者提供了基于before函数设计中间件的机会。当开发设置函数(即空函数)后,需要使用http库来判断行为。6.httpd:group(type,prefix,handles)group方法提供了一种批量注册路由的方式,为一组相同的Group路由提供了一种简单方便的注册方式。第一个参数type为需要批量注册的路由类型;初始化httpd对象后,使用app.USE或app.API传值;第二个参数prefix是字符串类型的header部分;例如:/api,/admin;第三个参数是一组路由处理函数或处理类数组;类型:{route='/login',class=class};注意:该方法只支持批量注册API,不像USE路由,不能同时注册不同类型的路由;7.httpd:static(folder,ttl)listen方法用于告诉httpd对象监听指定的端口。第一个参数ip还没有被httpd使用(但必须设置),默认监听所有网卡'0.0.0.0'地址和指定的端口号;backlog是用户的最大连接等待队列,合理的设置可以减少连接被重置的情况(默认值为128)。8、httpd:run()为httpd库所有参数和路由设置完成后,调用run方法启动监听模式。httpd的请求日志的日志格式为:[年/月/日时:分:秒]-[ip]-[x-real-ip]-[路径]-[方法]-[http代码]-[请求句柄]timeline]httpd的中间件httpd库提供了一个before方法,为开发者自定义'中间件'的行为提供了可能。具体使用方法可以参考http库。http内容每个http请求在调用之前和用户注册的路由时都会传入一个内容。这个内容就是客户端请求的所有参数。args:支持标准的get或post参数,因为a[1]=1&a[2]=2不会被解析成数组类型;支持multipart/form-data参数传递;header:原始headerkey-value表,framework层不会进行header内容解析。(一般不需要);body:目前body支持这些类型:multipart/form-data,application/x-www-form-urlencoded,application/json,application/xml;json/xml:当body是类型为json,内容的json属性为true;当body是xml类型时,content的xml属性为真。file:当客户端使用multipart/form-data传输数据时,该属性可用;该属性为数组类型;下一章继续学习我们一起学习如何使用模板库搭建httpd模板引擎