我正在运行一个Lua HTTP客户端,该请求导致错误400:
[root]# ./luatest
<!DOCTYPE HTML><html><head><title>400 Bad Request</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><link href="/imgs/errors.css" rel="stylesheet" type="text/css"></head>
<body><h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.</p></body></html> 400 table: 0x1ba1f70 HTTP/1.1 400 Bad Request
[root]# cat luatest
#!/usr/bin/lua
local http = require("socket.http")
print(http.request("http://localhost/"))
[root]# curl "http://localhost"
<html> hi there </html> [root]#
G-WAN对curl客户端请求做出了正确的响应,但当从lua请求相同的文档时,它就失效了。是我们遗漏了什么,还是这根本不起作用?
也许您可以查看客户端HTTP请求,并将其转储到那里。如果你不知道它出了什么问题,我们将有机会告诉你。
自2009年以来,G-WAN了解所有Web浏览器和许多客户端(如cURL、wget等)的HTTP请求,因此客户端问题可能与一个琐碎的HTTP语法一致性问题有关(如HTTP/1.1中缺少"主机"标头)
由于评论和问题中存在明显的混淆,以下是一些澄清:
- Lua和curl客户端向G-WAN(HTTP服务器)发送HTTP请求
- 使用
G-WAN -t
将客户端请求记录在gwan/trace
文件中 - 比较
gwan/trace
中记录的curl和lua HTTP请求,看看lua做错了什么
这个过程应该可以让你找到你的场景中缺少的东西。
最后一件事,G-WAN并没有"死亡":相反,它会回复一个HTTP400错误("格式错误的请求")。
需要修改LUA请求以包含正确的头。开发商这样做似乎让人失望。如果我从他那里得到代码,就会更新。