0

我正在运行 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 请求相同文档时会死机。我们是否缺少某些东西,或者这只是行不通?

4

2 回答 2

0

也许您可以查看客户端 HTTP 请求,然后将其转储到那里。如果您看不出它有什么问题,我们将有机会告诉您。

自 2009 年以来,G-WAN 了解所有 Web 浏览器和许多客户端(如 cURL、wget 等)的 HTTP 请求,因此此客户端问题很可能与一个琐碎的 HTTP 语法一致性问题有关(例如缺少 HTTP 的“Host”标头) /1.1)。


由于评论和问题中存在明显的混淆,这里有一些澄清:

  • Lua 和 curl 客户端向 HTTP 服务器 G-WAN 发送 HTTP 请求
  • 用于G-WAN -tgwan/trace文件中记录客户端请求
  • 比较登录的 curl 和 lua HTTP 请求gwan/trace,看看 Lua 做错了什么。

该过程应该让您找到方案中缺少的内容。

最后一件事,G-WAN 不会“死亡”:相反,它会回复 HTTP 400 错误(“格式错误的请求”)。

于 2013-07-18T12:46:32.100 回答
0

需要修改 LUA 请求以包含正确的标头。这样做的开发商似乎从地球上掉了下来。如果我从他那里得到代码,我会更新。

于 2013-08-06T18:55:38.210 回答