Python HTTP服务器接收来自iPhone的多个请求
我创建了一个非常简单的Python HTTP服务器(Python v3.2),它使用BaseHTTPRequestHandler来处理GET请求。在电脑上用任何网页浏览器访问时,一切都运行得很好。但是,当我在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上会这样?每次它都一致地发送三次请求。有没有什么办法可以解决这个问题?
顺便说一下,如果我使用Apache服务器,iPhone就不会这样,只发送一次GET请求。只有在我用Python运行服务器时才会出现这种情况。
谢谢
1 个回答
1
Safari浏览器在遇到一些HTTP错误时,会最多发送请求三次。这是为了确保请求能够成功。如果你在你的do_GET()方法中生成一个正确的HTTP响应,就可以解决这个问题。