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 で「ホスト」ヘッダーが欠落しているなど) に関連している可能性があります。 /1.1)。


コメントと質問には明らかな混乱があるため、ここにいくつかの説明を示します。

  • Lua および curl クライアントは、HTTP サーバーである G-WAN に HTTP 要求を送信します。
  • G-WAN -tクライアント要求をgwan/traceファイルに記録するために使用します
  • ログインした curl と lua の HTTP リクエストを比較して、gwan/traceLua が何を間違っているかを確認します。

この手順により、シナリオに欠けているものを見つけることができます。

最後に、G-WAN は「停止」しません。むしろ、HTTP 400 エラー (「不正な形式の要求」) で応答します。

于 2013-07-18T12:46:32.100 に答える