我有关于POST HTTP请求的情况: (此处使用的主机和链接已启动并正在运行)
POST /inventory-check.cgi HTTP/1.1
Host: www.joes-hardware.com
Accept-Encoding: identity
Content-Length: 7
Content-Type: text/plain
item=563
当我将上述请求字符串发送给主机时,服务器会向我发送奇怪的内容(以及预期结果)
HTTP/1.1 200 OK
Date: Thu, 31 Oct 2013 12:07:48 GMT
Server: Apache/2.2.22 (Unix) DAV/2 FrontPage/5.0.2.2635 mod_ssl/2.2.22 OpenSSL/1.0.1c
Transfer-Encoding: chunked
Content-Type: text/html
6b
<HTML><BODY>
<H1>Joe's Hardware Store Inventory Check</H1>
Yes! Item number 56 is in stock!
</BODY></HTML>
0
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>501 Method Not Implemented</title>
</head><body>
<h1>Method Not Implemented</h1>
<p>3 to /index.html not supported.<br />
</p>
<hr>
<address>Apache/2.2.22 (Unix) DAV/2 FrontPage/5.0.2.2635 mod_ssl/2.2.22 OpenSSL/1.0.1c Server at totty.temp.veriohosting.com Port 80</address>
</body></html>
我在python中用urllib模块检查了请求,这只给出了预期的输出(这里我省略了响应细节)
<HTML><BODY>
<H1>Joe's Hardware Store Inventory Check</H1>
Yes! Item number 56 is in stock!
</BODY></HTML>
我错过了什么? 实际上我是HTTP的新手,并且有c / c ++ / python的经验...任何帮助都将受到赞赏..提前感谢
答案 0 :(得分:3)
item = 563是8个字节,但是您声明Content-Length为7.因此,服务器会看到两个请求,一个是对项目56的有效HTTP请求,另一个是由该字符组成的无效HTTP请求仅限3,并向您发送两个回复。
答案 1 :(得分:0)
您的请求取决于内容长度。
也就是说,服务器对附加字符3
的处理方式仍有点奇怪。