HTTP请求和响应参数

时间:2013-10-31 12:27:03

标签: python http post header elements

我有关于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的经验...任何帮助都将受到赞赏..提前感谢

2 个答案:

答案 0 :(得分:3)

item = 563是8个字节,但是您声明Content-Length为7.因此,服务器会看到两个请求,一个是对项目56的有效HTTP请求,另一个是由该字符组成的无效HTTP请求仅限3,并向您发送两个回复。

答案 1 :(得分:0)

您的请求取决于内容长度。

也就是说,服务器对附加字符3的处理方式仍有点奇怪。