Python HTTP服务器接收来自iPhone的多个请求

1 投票
1 回答
887 浏览
提问于 2025-04-16 12:18

我创建了一个非常简单的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响应,就可以解决这个问题。

撰写回答