我尝试使用Python创建一个简单的Web代理,该代理打印到stdout HTTP请求和响应。一切都很好,但是将HTTP响应发送到浏览器并不起作用(浏览器只是保持"旋转":|)。
这是该部分的代码:
bclient = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
bclient.connect((self.browser_host, self.browser_port))
bclient.send(response)
bclient.close()
发送的样本响应是:
HTTP/1.1 200 OK
Date: Wed, 04 Jun 2014 20:35:29 GMT
Server: Apache/2.2.17 (Unix)
Set-Cookie: PHPSESSID=dc09f975147aa6011cac3177c1646625; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 263
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Welcome to Python.com</title>
</head>
<frameset rows="100%,*" frameborder=0 border=0>
<frame name="main" src="inside.phtml?source=home&" frameborder="0">
</frameset>
</html>
我尝试在响应中添加一个Connection:close标头,但没有结果。 有什么想法吗?