GWan和Lua的HTTP客户端

我正在运行一个 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 中请求时失败。我们是否有什么遗漏的问题,或者这只是无法工作的情况?

点赞
用户1079036
用户1079036

也许你可以查看客户端HTTP请求,并在那里转储它。如果您找不到问题所在,我们将有机会告诉您。

自2009年以来,G-WAN了解所有Web浏览器和许多客户端(如cURL,wget等)的HTTP请求,因此这个“客户端”问题可能与微不足道的HTTP语法符合性问题有关(如在HTTP / 1.1中缺少“Host”头)。


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

  • Lua和curl客户端将HTTP请求发送到HTTP服务器G-WAN
  • 使用“G-WAN -t”将客户端请求记录在“gwan / trace”文件中
  • 比较在“gwan / trace”中记录的Curl和Lua HTTP请求,以了解Lua做错了什么。

这个过程应该让你找到场景中缺少的东西。

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

2013-07-18 12:46:32
用户2052285
用户2052285

需要修改 LUA 请求以包含正确的标题。完成此操作的开发人员似乎消失了。如果我从他那里得到代码,我会进行更新。

2013-08-06 18:55:38