
Lua HTTP的定义
- Lua HTTP是一个应用级协议,用于在浏览器上加载和获取万维网应用链接的Lua编程语言。
- 它是一个超文本传输文本协议,用于在互联网上使用Lua技术传输信息。
- 它是一个通用协议,使用Lua源代码在网络浏览器的服务器和客户端之间提供高级通信。
- 它是一个无状态协议,用于灵活的数据传输,检索HTTP数据,并抛出Lua代码的错误。
- 它对网络服务器的请求和对网络浏览器的响应很有用。
语法。
- 它有许多模块和方法来与客户和服务器通信。
- 下面是一些带有解释的Lua HTTP模块信息。
- Lua HTTP的语法如下。
- Lua HTTP的客户端请求语法如下。
require "http.request";
- 例子: local lua_variable_name = require " http.request " 。
new_from_uri("uri link")
-
例子: local new_variable_name = variable_name.new_from_uri("lua.org/demo")
-
http.request是一个用于客户端请求的高级接口。
-
http.request是使用客户端请求来检索服务器信息的。
-
new_from_uri正在立即获取给定的Lua HTTP链接,并执行该程序。
-
new_from_uri与http.request对象相连,以评估Lua HTTP URI。
Lua HTTP服务器端的语法如下。
require "http.server"
Example: local lua_server = require "http.server"
require "http. headers"
例子:local lua_headers = require "http.headers"
- http.server是创建对象,用于封装Lua HTTP服务器套接字。
- 服务器将信息发送到客户端的Lua HTTP。
- http.headers是Lua HTTP字段名的索引。
- http.头是敏感数据,通过调用键值来检索。
Lua HTTP头的语法如下。
headers:append(name, value, never_index) headers:each() : status
- headers: append用于创建和关联头的名称、值和布尔授权。
- headers: each()用于迭代头文件的值。
- header ": status" 用于保持字符串格式的值。
Lua HTTP直到语法如下。
require "http.util"
**Example:**local lua_http_variable = require "http.util";
Lua Http紧凑套接字的语法如下。
require "http.compat.socket"
**例如:**local lua_http_variable = require "http.compat.socket"。
这是为了提供Lua HTTP请求的兼容性。
HTTP如何在Lua中工作?
**第一步:**Lua编程IDE环境设置。
根据Lua软件的版本,在你的虚拟机上安装Lua文本编辑器、Lua编译器和Lua解释器。
**第2步:**Lua HTTP环境设置。
安装Lua HTTP帮助与Lua模块的包管理器(luarocks)。
Website name:- https://luarocks.org/
- 这个经理是自动安装Lua HTTP的依赖性。
- 下面的命令只是在Lua软件中输入。
$ luarocks install http.
**第三步:**下面的依赖,你应该安装在Lua软件。
-
- 基本的依赖是luaossl,basexx,lpeg,lpeg_pattern,二进制堆,fifp,和队列(微软Windows不支持)。
- 文档压缩的依赖性是 lzlib 和 Lua-zlib。
- Lua HTTP cookies的依赖性是lua-psl。
- Lua HTTP测试的依赖性是luacheck、busted和luacov。
**第4步:**用Lua HTTP.请求创建一个变量。
local lua_http_variable= require('http.request');
第5步:用Lua new_from_uri(" uri name ") 创建一个变量。
local new_http_variable= lua_http_variable.new_from_uri("http://lua.org/demo")
第6步:在Lua HTTP的头文件和蒸汽使用。
for lua_field, lua_value in headers:each() do print(lua_field, lua_value) end local body_http_variable = assert(stream:get_body_as_string())
第7步:返回Lua HTTP要求的数据。
print(body_http_variable)
- 结合Lua HTTP的工作程序。
local lua_http_variable= require "http.request" local new_http_variable= lua_http_variable .new_from_uri ("http://lua.org/demo") local headers, stream= assert ( new_http_variable:go()); for lua_field, lua_value in headers:each() do print (lua_field, lua_value) end local body_http_variable = assert (stream:get_body_as_string()) print (body_http_variable)
例子
让我们来讨论Lua HTTP的例子。
示例#1:Lua Http客户端服务器的例子和输出。
local lua_http_variable= require "http.request"; local new_http_variable= lua_http_variable .new_from_uri ("http://lua.org/demo") local headers, stream= assert ( new_http_variable:go()); for lua_field, lua_value in headers:each() do print (lua_field, lua_value) end local body_http_variable = assert (stream:get_body_as_string()) print (body_http_variable)
**输出1:**在Lua命令提示符下输入$ cat filename.Lua命令。

**输出2:**在Lua命令提示符下输入$ lua filename.Lua命令。

Example #2: Lua Http客户端服务器与 "if "循环的例子和输出。
local lua_http_variable= require "http.request"; local new_http_variable= lua_http_variable .new_from_uri ("http://lua.org/demo") local headers, stream= assert( new_http_variable:go()); local body_http_variable = assert (stream:get_body_as_string()) if headers : get ":status" ~= "200" then error (body_http_variable) end print (body_http_variable)
输出。
**输出1:**在Lua命令提示符中输入$ cat filename.Lua命令。

**输出2:**在Lua命令提示符下输入$ lua filename.Lua命令。

例子#3:Lua HTTP服务器端的例子和输出。
local lua_server = require "http.server"; local lua_header = require "http.headers"; local lua_http_server = lua_server.listen { host: "localhost"; port: 8005; onstream: function(sa, sb) local reqst_header = sb:get_headers(), local reqst_method = sb:get(":method") local lua_path = reqst_header:get(":path") or "", local recv_path = headers.new() recv_path:append(":status", "200") recv_path:append("content-type", "text/plain") sb:write_headers(recv_path, reqst_method == "HEAD") if reqst_method ~= "HEAD" then sb:write_chunk(("Received message \n":format(lua_path), true) end end } lua_http_server.listen(); lua_http_server.loop();
**输出1:**该输出显示了Lua HTTP服务器的端口。

**输出2:**该输出显示了Lua HTTP服务器的信息。

例子#4:Lua HTTP with util的例子和输出如下。
第一部分:使用query-args(string)与http.util的例子。
local lua_http_vrblr = require "http.util"; for names, values in lua_http_vrblr.query.args("Lua = language & Lua = http") do print("names, values") end
输出。

第二部分:使用query-args(string)与http.util的例子。
local lua_http_util = require "http.util" print(lua_http_util.split_authority("lua.org", "https")) print(lua_http_util.split_authority("localhost:8005", "http"))
输出结果。

Example #5: Lua HTTP with socket的例子和输出如下。
local lua_http_socket = require "http.compat.socket" local bd, dc = assert(lua_http_socket.request("http://google.com")) print(dc, #bd);
输出。

结论
- 它有很多方法来控制服务器和客户端的数据或信息。
- 它使Lua应用程序变得简单、互动,并在服务器或互联网上受到保护。
- 它帮助客户端轻松地获得服务器端的信息和保护。