Python HTTP Server从iPhone获取多个请求

时间:2011-02-22 17:28:50

标签: iphone python http request

我创建了一个非常基本的Python http服务器(Python v3.2),它使用BaseHTTPRequestHandler来处理GET请求。当我在计算机上使用任何Web浏览器时,它工作正常。但是,当我在iPhone上使用移动浏览器时,我总是会看到三个GET请求。

例如,如果我运行它:

import http.server
from http.server import HTTPServer
from http.server import BaseHTTPRequestHandler

class MyHandler (BaseHTTPRequestHandler):
    def do_GET(self):
        print(self.path)

print('running server on port 80')
server = HTTPServer(('', 80), MyHandler)
server.serve_forever()

..然后我在我的iPhone上进入我的网络浏览器并输入“192.168.1.191/blah”,输出如下:

/blah
/blah
/blah

但是如果我是从计算机上做的,它只发送一个GET请求,所以输出是这样的:

/blah

任何人都可以向我解释为什么它会像iPhone这样表现吗?它始终每次发送3个请求。有没有办法解决?

顺便说一句,如果我使用Apache服务器,iPhone就不会这样做。它只发送一个GET请求。只有在我使用Python运行服务器时才会这样。

由于

1 个答案:

答案 0 :(得分:1)

Safari最多返回三次请求 - 显然是在某些 HTTP错误的情况下。 从do_GET()方法内部生成正确的HTTP响应将解决此问题。